bhl-forms 0.6.5 → 0.6.6

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 (74) hide show
  1. package/dist/bhl-forms.iife.js +1 -1
  2. package/dist/bhl-forms.modern.iife.js +1 -1
  3. package/dist/bhl-forms.modern.umd.js +1 -1
  4. package/dist/bhl-forms.umd.js +1 -1
  5. package/dist/forms/accidentsAndInjuries.es.js +1441 -861
  6. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  7. package/dist/forms/accidentsAndInjuries.json +1 -1
  8. package/dist/forms/appraisals.es.js +115 -115
  9. package/dist/forms/appraisals.iife.js +1 -1
  10. package/dist/forms/childAndFamily.es.js +789 -763
  11. package/dist/forms/childAndFamily.iife.js +1 -1
  12. package/dist/forms/childAndFamily.json +1 -1
  13. package/dist/forms/childAndFamilySingle.es.js +755 -745
  14. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  15. package/dist/forms/childAndFamilySingle.json +1 -1
  16. package/dist/forms/civilLawsuit.es.js +835 -804
  17. package/dist/forms/civilLawsuit.iife.js +1 -1
  18. package/dist/forms/civilLawsuit.json +1 -1
  19. package/dist/forms/coins.es.js +115 -115
  20. package/dist/forms/coins.iife.js +1 -1
  21. package/dist/forms/contracts.es.js +1454 -715
  22. package/dist/forms/contracts.iife.js +1 -1
  23. package/dist/forms/contracts.json +1 -1
  24. package/dist/forms/criminal.es.js +870 -823
  25. package/dist/forms/criminal.iife.js +1 -1
  26. package/dist/forms/criminal.json +1 -1
  27. package/dist/forms/employmentAndWorkplace.es.js +1827 -1188
  28. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  29. package/dist/forms/employmentAndWorkplace.json +1 -1
  30. package/dist/forms/generalLegal.es.js +852 -806
  31. package/dist/forms/generalLegal.iife.js +1 -1
  32. package/dist/forms/generalLegal.json +1 -1
  33. package/dist/forms/generalLegalPopUnder.es.js +852 -805
  34. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  35. package/dist/forms/generalLegalPopUnder.json +1 -1
  36. package/dist/forms/generalLegalSingle.es.js +1525 -1501
  37. package/dist/forms/generalLegalSingle.iife.js +1 -1
  38. package/dist/forms/generalLegalSingle.json +1 -1
  39. package/dist/forms/generalLegalThankYou.es.js +708 -693
  40. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  41. package/dist/forms/generalLegalThankYou.json +1 -1
  42. package/dist/forms/harassmentAndDiscrimination.es.js +1465 -681
  43. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  44. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  45. package/dist/forms/malpractice.es.js +1764 -1066
  46. package/dist/forms/malpractice.iife.js +1 -1
  47. package/dist/forms/malpractice.json +1 -1
  48. package/dist/forms/mechanics.es.js +115 -115
  49. package/dist/forms/mechanics.iife.js +1 -1
  50. package/dist/forms/realEstate.es.js +1556 -1208
  51. package/dist/forms/realEstate.iife.js +1 -1
  52. package/dist/forms/realEstate.json +1 -1
  53. package/dist/forms/repossession.es.js +1811 -1085
  54. package/dist/forms/repossession.iife.js +1 -1
  55. package/dist/forms/repossession.json +1 -1
  56. package/dist/forms/ssdi.es.js +672 -672
  57. package/dist/forms/ssdi.iife.js +1 -1
  58. package/dist/forms/ssdi.json +1 -1
  59. package/dist/forms/testForm.es.js +473 -468
  60. package/dist/forms/testForm.iife.js +1 -1
  61. package/dist/forms/testForm.json +1 -1
  62. package/dist/forms/testRedirects.es.js +104 -101
  63. package/dist/forms/testRedirects.iife.js +1 -1
  64. package/dist/forms/testRedirects.json +1 -1
  65. package/dist/forms/vets.es.js +115 -115
  66. package/dist/forms/vets.iife.js +1 -1
  67. package/dist/forms/willsAndTrusts.es.js +1298 -705
  68. package/dist/forms/willsAndTrusts.iife.js +1 -1
  69. package/dist/forms/willsAndTrusts.json +1 -1
  70. package/dist/main.css +1 -1
  71. package/package.json +1 -1
  72. package/dist/forms/generalLegalPopUnderTF.es.js +0 -3087
  73. package/dist/forms/generalLegalPopUnderTF.iife.js +0 -1
  74. package/dist/forms/generalLegalPopUnderTF.json +0 -1
@@ -15,487 +15,318 @@ const DEFAULT_FINAL_HEADLINE_DYNAMIC = '$getKey($meta, "finalHeadlines." + $get(
15
15
  const DEFAULT_FINAL_SUBHEADLINE = 'You may benefit from speaking with a legal professional. Please verify your contact information.';
16
16
  const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC = '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
17
17
 
18
- const formPropDefaults = {
19
- type: 'form',
20
- id: 'form',
21
- config: { validationVisibility: 'submit' },
22
- onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
23
- plugins: '$plugins',
24
- actions: false,
25
- anchorElement: 'form-anchor',
26
- useLocalStorage: true,
27
- prepop: {
28
- fromURL: true
29
- },
30
- errorCodes: {
31
- 403: { message: "An Error Occurred", abort: false },
32
- 409: { abort: false },
33
- 429: "An Error Occurred",
34
- 504: { message: "An Error Occurred", abort: false },
35
- },
36
- formClass: '!t-max-w-[40rem]'
37
- };
18
+ // ------ Common Base Settings
38
19
 
39
- function formProps(updates) {
40
- const props = merge(
41
- formPropDefaults,
42
- updates
43
- );
44
- if (props.formId && !props.name) {
45
- props.name = props.formId;
20
+ const checkbox = (updates) => {
21
+ if (updates.name && !updates.id) {
22
+ updates.id = updates.name;
46
23
  }
47
- return props
48
- }
24
+ return merge({
25
+ $formkit: 'checkbox',
26
+ validation: 'required',
27
+ validationMessages: {
28
+ required: 'Field is required'
29
+ }
30
+ }, updates)
31
+ };
49
32
 
50
- const metaDefaults = {
51
- tcpaLanguage: TCPA_LANGUAGE
33
+ const sbsCheckbox = (updates) => {
34
+ updates.legendClass = 'legend-left required';
35
+ updates.fieldsetClass = '$reset side-by-side';
36
+ updates.optionsClass = 't-pl-1';
37
+ updates.innerClass = 't-flex t-items-center';
38
+ updates.wrapperClass = 't-mb-3';
39
+ return checkbox(updates)
52
40
  };
53
41
 
54
- function metaProps(updates) {
55
- const data = merge(
56
- metaDefaults,
57
- updates
58
- );
59
- return {
60
- type: 'meta',
61
- data
42
+ const col2Checkbox = (updates) => {
43
+ if (!updates || !updates.legendClass) {
44
+ updates.legendClass = 'required';
62
45
  }
63
- }
64
-
65
- function defaultMetaProps() {
66
- return metaProps({
67
- defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
68
- commentsPlaceholders: TOLPCommentsPlaceholders,
69
- defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
70
- finalHeadlines: TOLPFinalHeadlines,
71
- defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
72
- finalSubHeadlines: TOLPFinalSubHeadlines,
73
- // Added everywhere for now
74
- // trustedFormTOLPs: trustedFormTOLPs
75
- })
76
- }
46
+ updates.fieldsetClass = '$reset';
47
+ updates.optionsClass = 't-pl-8 md:t-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
48
+ updates.innerClass = 't-items-start';
49
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
50
+ return checkbox(updates)
51
+ };
77
52
 
78
- const formAnchorDefaults = {
79
- $el: 'div',
80
- children: [
81
- {
82
- $el: 'div',
83
- attrs: {
84
- id: 'form-anchor',
85
- class: 't-absolute',
86
- style: { top: '-30px', left: 0 }
87
- }
88
- }
89
- ],
90
- attrs: {
91
- class: 't-relative'
53
+ const radio = (updates) => {
54
+ if (updates.name && !updates.id) {
55
+ updates.id = updates.name;
92
56
  }
57
+ return merge({
58
+ $formkit: 'radio',
59
+ validation: 'required',
60
+ validationMessages: {
61
+ required: 'Field is required'
62
+ },
63
+ optionsClass: 't-pt-3 t-pl-1',
64
+ legendClass: 'required'
65
+ }, updates)
93
66
  };
94
67
 
95
- function formAnchor(updates) {
96
- return merge(
97
- formAnchorDefaults,
98
- updates
99
- )
100
- }
68
+ const col2Radio = (updates) => {
69
+ updates.legendClass = 'required';
70
+ updates.fieldsetClass = '$reset';
71
+ updates.optionsClass = 't-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
72
+ updates.innerClass = 't-items-start';
73
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
74
+ return radio(updates)
75
+ };
101
76
 
102
- function headlineDefaults(updates = {}) {
103
- return {
104
- $el: 'h1',
105
- attrs: {
106
- class: 't-flex t-justify-center t-text-center !t-text-[2rem] t-font-semibold t-pt-5 t-px-7 md:t-px-3' + ' ' + (updates.headlineClass || '')
107
- }
77
+ const sbs2ColRadio = (updates) => {
78
+ updates.legendClass = 'legend-left-flex md:t-max-w-[40%] required';
79
+ updates.fieldsetClass = '$reset side-by-side-flex';
80
+ updates.optionsClass = 'md:t-ml-4 md:t-mt-2 t-grid t-grid-cols-1 md:t-grid-cols-2-125';
81
+ updates.innerClass = 't-flex t-items-start';
82
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
83
+ return radio(updates)
84
+ };
85
+
86
+ const sbs2ItemRadio = (updates) => {
87
+ updates.legendClass = 'legend-left t-pb-1 required';
88
+ updates.fieldsetClass = '$reset side-by-side t-items-center';
89
+ updates.optionsClass = 't-mt-1 t-grid t-grid-cols-1 md:t-grid-cols-2-125 t-items-center';
90
+ updates.innerClass = 't-flex t-items-center';
91
+ updates.optionClass = 't-pr-1';
92
+ return radio(updates)
93
+ };
94
+
95
+ const sbsYesNoRadio = (updates) => {
96
+ updates.options = ['Yes', 'No'];
97
+ return sbs2ItemRadio(updates)
98
+ };
99
+
100
+ const select = (updates) => {
101
+ if (updates.name && !updates.id) {
102
+ updates.id = updates.name;
108
103
  }
109
- }
104
+ return merge({
105
+ $formkit: 'select',
106
+ placeholder: "Please Select",
107
+ validation: 'required',
108
+ validationMessages: {
109
+ required: 'Field is required'
110
+ },
111
+ inputClass: 't-bg-white',
112
+ labelClass: 'required'
113
+ }, updates)
114
+ };
110
115
 
111
- function headline(updates = {}) {
112
- return merge(
113
- headlineDefaults(updates),
114
- updates
115
- )
116
- }
116
+ const sbsSelect = (updates) => {
117
+ updates.labelClass = 'required';
118
+ updates.wrapperClass = 'side-by-side t-items-center';
119
+ updates.innerClass = 'select-height-content';
120
+ updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
121
+ return select(updates)
122
+ };
117
123
 
118
- function subHeadlineDefaults(updates = {}) {
119
- return {
120
- $el: 'h3',
121
- attrs: {
122
- class: 't-flex t-justify-center t-text-center !t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10' + ' ' + (updates.subheadlineClass || '')
123
- }
124
+ const text = (updates) => {
125
+ if (updates.name && !updates.id) {
126
+ updates.id = updates.name;
124
127
  }
125
- }
128
+ return merge({
129
+ $formkit: 'text',
130
+ validation: 'required',
131
+ validationMessages: {
132
+ required: 'Field is required'
133
+ },
134
+ labelClass: 'required'
135
+ }, updates)
136
+ };
126
137
 
127
- function subHeadline(updates = {}) {
128
- return merge(
129
- subHeadlineDefaults(updates),
130
- updates
131
- )
132
- }
138
+ const sbsText = (updates) => {
139
+ updates.wrapperClass = 'side-by-side t-items-center';
140
+ return text(updates)
141
+ };
133
142
 
134
- const secureIconDefault = {
135
- $el: 'div',
136
- if: '$activeStep === $lastStep()',
137
- attrs: {
138
- class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
139
- },
140
- children: [
141
- {
142
- $el: 'img',
143
- attrs: {
144
- loading: 'lazy',
145
- alt: '',
146
- style: {
147
- border: 0
148
- },
149
- width: '25',
150
- height: '25',
151
- src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
152
- }
143
+ const textArea = (updates) => {
144
+ if (updates.name && !updates.id) {
145
+ updates.id = updates.name;
146
+ }
147
+ return merge({
148
+ $formkit: 'textarea',
149
+ rows: 5,
150
+ maxlength: 500,
151
+ validation: 'required',
152
+ validationMessages: {
153
+ required: 'Field is required'
153
154
  },
154
- {
155
- $el: 'span',
156
- children: 'Secure & Encrypted',
157
- attrs: {
158
- class: 't-pl-2 t-pt-1 t-font-medium'
159
- }
160
- }
161
- ]
155
+ innerClass: 't-max-w-xl',
156
+ labelClass: 'required'
157
+ }, updates)
162
158
  };
163
159
 
160
+ const date = (updates) => {
161
+ if (updates.name && !updates.id) {
162
+ updates.id = updates.name;
163
+ }
164
+ return merge({
165
+ $formkit: 'DatePicker',
166
+ validation: 'required',
167
+ validationMessages: {
168
+ required: 'Field is required'
169
+ },
170
+ labelClass: 'required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500',
171
+ innerClass: 't-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500'
172
+ }, updates)
173
+ };
164
174
 
165
- function secureIcon(updates) {
166
- return merge(
167
- secureIconDefault,
168
- updates
169
- )
170
- }
175
+ const sbsDate = (updates) => {
176
+ updates.wrapperClass = 'side-by-side t-items-center';
177
+ return date(updates)
178
+ };
171
179
 
172
- const hiddenInputsBase = [
173
- {
174
- $formkit: 'hidden',
175
- name: "gclid",
176
- value: null
177
- },
178
- {
179
- $formkit: 'hidden',
180
- name: "campaignid",
181
- value: null
182
- },
183
- {
184
- $formkit: 'hidden',
185
- name: "s",
186
- value: null
180
+ const applicantAge = (scope) => sbsText({
181
+ name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
182
+ label: 'Age of Applicant?',
183
+ placeholder: 'Age between 18 and 65',
184
+ maxlength: 2,
185
+ inputmode: "numeric",
186
+ validation: "required|min:18,max:65",
187
+ validationMessages: {
188
+ required: 'Applicant Age is required',
189
+ min: 'Invalid Age - must be between 18 and 65',
190
+ max: 'Invalid Age - must be between 18 and 65',
187
191
  }
188
- ];
192
+ });
189
193
 
190
- const hiddenInputsLegal = [
191
- {
192
- $formkit: 'hidden',
193
- name: "vertical",
194
- value: "Legal"
195
- },
196
- {
197
- $formkit: 'hidden',
198
- name: "TCPA_Language",
199
- value: "$meta.tcpaLanguage"
200
- },
201
- ...hiddenInputsBase
202
- ];
194
+ const atFault = (scope) => sbsYesNoRadio({
195
+ name: scope ? scope + ':' + 'At_Fault' : 'At_Fault',
196
+ label: 'Were You at Fault?'
197
+ });
203
198
 
204
- const legalRedirectMapDefaults = {
205
- '*': LegalRedirectUrl()
206
- };
199
+ const bankruptcyCrossSell = () => sbsCheckbox({
200
+ label: "I'd also like a consult for bankruptcy or debt elimination (optional)",
201
+ help: "Note: you will be contacted separately by a bankruptcy/debt expert",
202
+ name: 'CrossSell_Bankruptcy',
203
+ id: 'CrossSell_Bankruptcy',
204
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") != "Bankruptcy" && ($getVal($get(form), "Degree_Of_Interest") == "Absolutely Can\'t Afford" || $getVal($get(form), "Degree_Of_Interest") == "Maybe" || $getVal($get(form), "Degree_Of_Interest") == "Probably")',
205
+ validation: null,
206
+ helpClass: "!t-text-sm"
207
+ });
207
208
 
209
+ const bloodContentAlcoholTest = (scope) => sbsSelect({
210
+ name: scope ? scope + ':' + 'Blood_Alcohol_Content_Test' : 'Blood_Alcohol_Content_Test',
211
+ label: 'Blood Alcohol Content Measured by Test:',
212
+ options: [
213
+ "No Test",
214
+ "0.00% - 0.04%",
215
+ "0.05% - 0.08%",
216
+ "0.09% - 0.12%",
217
+ "0.13% - 0.16%",
218
+ "0.17% - 0.20%",
219
+ "More than 0.20%",
220
+ "Don't know"
221
+ ]
222
+ });
208
223
 
209
- function legalRedirectMap(updates) {
210
- return merge(
211
- legalRedirectMapDefaults,
212
- updates
213
- )
214
- }
224
+ const causeOfInjury = (scope) => sbsSelect({
225
+ name: scope ? scope + ':' + 'Cause_Of_Injury' : 'Cause_Of_Injury',
226
+ label: 'Cause of Injury:',
227
+ options: [
228
+ "Traumatic Physical Injury (Accident)",
229
+ "Repeated Trauma Injury",
230
+ "Mental Injury",
231
+ "Occupational Disease",
232
+ "Not Sure"
233
+ ]
234
+ });
215
235
 
216
- const TOLPCommentsPlaceholders = {
217
- 'Adoption': 'Example: "I need help with adoption forms"',
218
- 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
219
- 'Auto and Car Accidents': 'Example: "A truck crashed into my car on the highway" or "I\'ve been involved in a hit and run accident"',
220
- 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
221
- 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
222
- 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
223
- 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
224
- 'Child Custody': 'Example: "Need help getting custody"',
225
- 'Child Support': 'Example: "Issues with child support payments"',
226
- 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
227
- 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
228
- 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
229
- 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
230
- 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
231
- 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
232
- 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
233
- 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
234
- 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
235
- 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
236
- 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
237
- 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
238
- 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
239
- 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
240
- 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
241
- 'Guardianship': 'Example: "I need help with guardianship documents"',
242
- 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
243
- 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
244
- 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
245
- 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
246
- 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
247
- 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
248
- 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
249
- 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
250
- 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
251
- 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
252
- 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
253
- 'Long Term Disability': 'Example: "I was injured on the job and would like to file for benefits" or "I need help filing for disability benefits"',
254
- 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
255
- 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
256
- 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
257
- 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
258
- 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
259
- 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
260
- 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
261
- 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
262
- 'Social Security Disability and Insurance': 'Example: "I would like help filing for disability benefits" or "I\'ve been denied for SSDI and would like to appeal"',
263
- 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
264
- 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
265
- 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
266
- 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
267
- 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
268
- 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
269
- 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
270
- 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
271
- 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
272
- };
236
+ const childHome = (scope) => sbsSelect({
237
+ name: scope ? scope + ':' + 'Child_Home' : 'Child_Home',
238
+ label: 'With Whom Do the Children Currently Live?',
239
+ options: [
240
+ 'Mother',
241
+ 'Father',
242
+ 'Grandparents',
243
+ 'Other'
244
+ ]
245
+ });
273
246
 
274
- const TOLPFinalHeadlines = {
275
- // 'Adoption': '',
276
- };
247
+ const childPrimaryCaregiver = (scope) => sbsSelect({
248
+ name: scope ? scope + ':' + 'Child_Primary_Caregiver' : 'Child_Primary_Caregiver',
249
+ label: 'Who is the Primary Caregiver?',
250
+ options: [
251
+ 'Mother',
252
+ 'Father',
253
+ 'Other'
254
+ ]
255
+ });
277
256
 
278
- const TOLPFinalSubHeadlines = {
279
- 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
280
- // 'Asbestos and Mesothelioma': '',
281
- 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
282
- 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
283
- // 'Birth Certificate and Name Change': '',
284
- // 'Business Lawyers': '',
285
- // 'Child Custody and Support': '',
286
- // 'Civil Rights and Discrimination': '',
287
- // 'Civil Lawsuit': '',
288
- // 'Consumer Lawyers': '',
289
- 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
290
- // 'Criminal and Felony': '',
291
- // 'Debt and Collections': '',
292
- 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
293
- 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
294
- 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
295
- // 'Employment and Workplace': '',
296
- // 'Expungement': '',
297
- // 'Family Issues': '',
298
- 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
299
- 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
300
- // 'Harassment and Discrimination': '',
301
- // 'Identity Theft': '',
302
- 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
303
- // 'Insurance': '',
304
- 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
305
- // 'Lemon Law': '',
306
- 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
307
- 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
308
- 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
309
- 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
310
- // 'Power of Attorney': '',
311
- 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
312
- // 'Product Liability': '',
313
- // 'Property Damage': '',
314
- 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
315
- 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
316
- 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
317
- // 'Traffic and Tickets': '',
318
- 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
319
- // 'Victim of a Crime': '',
320
- // 'Wills and Trusts': '',
321
- 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
322
- // 'Wrongful Death': '',
323
- // 'Wrongful Termination': '',
324
- // 'Not Sure or Other': ''
325
- // 'Sexual Harassment': '',
326
- // 'Workplace Harassment': '',
327
- // 'Non-Workplace Harassment': '',
328
- // 'Workplace Discrimination': '',
329
- // 'Non-Workplace Discrimination': '',
330
- };
257
+ const childRelationship = (scope) => sbsSelect({
258
+ name: scope ? scope + ':' + 'Child_Relationship' : 'Child_Relationship',
259
+ label: 'Your Relationship to Child(ren):',
260
+ options: [
261
+ 'Father',
262
+ 'Mother',
263
+ 'Grandparent',
264
+ 'Aunt/Uncle',
265
+ 'Other'
266
+ ]
267
+ });
331
268
 
332
- // ------ Common Base Settings
269
+ const claimStatus = (scope) => sbsSelect({
270
+ name: scope ? scope + ':' + 'Claim_Status' : 'Claim_Status',
271
+ label: "Status of Claim:",
272
+ options: [
273
+ "No action taken yet",
274
+ "Demand for compensation made",
275
+ "Lawsuit filed",
276
+ "Other"
277
+ ]
278
+ });
333
279
 
334
- const checkbox = (updates) => {
335
- if (updates.name && !updates.id) {
336
- updates.id = updates.name;
337
- }
338
- return merge({
339
- $formkit: 'checkbox',
340
- validation: 'required',
341
- validationMessages: {
342
- required: 'Field is required'
343
- }
280
+ const comments = (updates, scope) => textArea(
281
+ merge({
282
+ name: scope ? scope + ':' + 'Comments' : 'Comments',
283
+ label: 'Please briefly describe your situation in a few words:',
284
+ placeholder: 'For Example: "I would like help with child support payments" or "I need help with visitation rights"'
344
285
  }, updates)
345
- };
286
+ );
346
287
 
347
- const sbsCheckbox = (updates) => {
348
- updates.legendClass = 'legend-left required';
349
- updates.fieldsetClass = '$reset side-by-side';
350
- updates.optionsClass = 't-pl-1';
351
- updates.innerClass = 't-flex t-items-center';
352
- updates.wrapperClass = 't-mb-3';
353
- return checkbox(updates)
354
- };
288
+ const contractsTOLPDisplay = (updates) => col2Radio(merge({
289
+ name: 'Type_Of_Legal_Problem_Display',
290
+ label: 'Select The Contract Issue:',
291
+ options: [
292
+ 'Contract Creation',
293
+ 'Contract Enforcement',
294
+ 'Contract Cancellation',
295
+ 'Contract Fraud',
296
+ 'Breach of Contract',
297
+ 'Other Contract Issues'
298
+ ]
299
+ }, updates));
355
300
 
356
- const radio = (updates) => {
357
- if (updates.name && !updates.id) {
358
- updates.id = updates.name;
359
- }
360
- return merge({
361
- $formkit: 'radio',
362
- validation: 'required',
363
- validationMessages: {
364
- required: 'Field is required'
365
- },
366
- optionsClass: 't-pt-3 t-pl-1',
367
- legendClass: 'required'
368
- }, updates)
369
- };
301
+ const degreeOfInterest = (scope, help) => sbsSelect({
302
+ name: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
303
+ id: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
304
+ label: 'How Likely Are You to Pay if Your Issue Could be Resolved?',
305
+ help: help,
306
+ options: [
307
+ 'Definitely',
308
+ 'Probably',
309
+ 'Maybe',
310
+ "Absolutely Can't Afford"
311
+ ]
312
+ });
370
313
 
371
- const col2Radio = (updates) => {
372
- updates.legendClass = 'required';
373
- updates.fieldsetClass = '$reset';
374
- updates.optionsClass = 't-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
375
- updates.innerClass = 't-items-start';
376
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
377
- return radio(updates)
378
- };
314
+ const degreeOfInterestHelp = (scope) => degreeOfInterest(scope, 'No payment necessary to speak with lawyers.');
379
315
 
380
- const sbs2ItemRadio = (updates) => {
381
- updates.legendClass = 'legend-left t-pb-1 required';
382
- updates.fieldsetClass = '$reset side-by-side t-items-center';
383
- updates.optionsClass = 't-mt-1 t-grid t-grid-cols-1 md:t-grid-cols-2-125 t-items-center';
384
- updates.innerClass = 't-flex t-items-center';
385
- updates.optionClass = 't-pr-1';
386
- return radio(updates)
387
- };
388
-
389
- const sbsYesNoRadio = (updates) => {
390
- updates.options = ['Yes', 'No'];
391
- return sbs2ItemRadio(updates)
392
- };
393
-
394
- const select = (updates) => {
395
- if (updates.name && !updates.id) {
396
- updates.id = updates.name;
397
- }
398
- return merge({
399
- $formkit: 'select',
400
- placeholder: "Please Select",
401
- validation: 'required',
402
- validationMessages: {
403
- required: 'Field is required'
404
- },
405
- inputClass: 't-bg-white',
406
- labelClass: 'required'
407
- }, updates)
408
- };
409
-
410
- const sbsSelect = (updates) => {
411
- updates.labelClass = 'required';
412
- updates.wrapperClass = 'side-by-side t-items-center';
413
- updates.innerClass = 'select-height-content';
414
- updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
415
- return select(updates)
416
- };
417
-
418
- const text = (updates) => {
419
- if (updates.name && !updates.id) {
420
- updates.id = updates.name;
421
- }
422
- return merge({
423
- $formkit: 'text',
424
- validation: 'required',
425
- validationMessages: {
426
- required: 'Field is required'
427
- },
428
- labelClass: 'required'
429
- }, updates)
430
- };
431
-
432
- const sbsText = (updates) => {
433
- updates.wrapperClass = 'side-by-side t-items-center';
434
- return text(updates)
435
- };
436
-
437
- const textArea = (updates) => {
438
- if (updates.name && !updates.id) {
439
- updates.id = updates.name;
440
- }
441
- return merge({
442
- $formkit: 'textarea',
443
- rows: 5,
444
- maxlength: 500,
445
- validation: 'required',
446
- validationMessages: {
447
- required: 'Field is required'
448
- },
449
- innerClass: 't-max-w-xl',
450
- labelClass: 'required'
451
- }, updates)
452
- };
453
-
454
- const bankruptcyCrossSell = () => sbsCheckbox({
455
- label: "I'd also like a consult for bankruptcy or debt elimination (optional)",
456
- help: "Note: you will be contacted separately by a bankruptcy/debt expert",
457
- name: 'CrossSell_Bankruptcy',
458
- id: 'CrossSell_Bankruptcy',
459
- if: '$getVal($get(form), "Type_Of_Legal_Problem") != "Bankruptcy" && ($getVal($get(form), "Degree_Of_Interest") == "Absolutely Can\'t Afford" || $getVal($get(form), "Degree_Of_Interest") == "Maybe" || $getVal($get(form), "Degree_Of_Interest") == "Probably")',
460
- validation: null,
461
- helpClass: "!t-text-sm"
316
+ const disabilityConditionStopWork = (scope) => sbsYesNoRadio({
317
+ name: scope ? scope + ':' + 'Disability_Condition_Stop_Work' : 'Disability_Condition_Stop_Work',
318
+ label: 'Do You Expect To Be Out Of Work For At Least a Year Due To Your Health?'
462
319
  });
463
320
 
464
- const comments = (updates, scope) => textArea(
465
- merge({
466
- name: scope ? scope + ':' + 'Comments' : 'Comments',
467
- label: 'Please briefly describe your situation in a few words:',
468
- placeholder: 'For Example: "I would like help with child support payments" or "I need help with visitation rights"'
469
- }, updates)
470
- );
471
-
472
- const contractsTOLPDisplay = (updates) => col2Radio(merge({
473
- name: 'Type_Of_Legal_Problem_Display',
474
- label: 'Select The Contract Issue:',
475
- options: [
476
- 'Contract Creation',
477
- 'Contract Enforcement',
478
- 'Contract Cancellation',
479
- 'Contract Fraud',
480
- 'Breach of Contract',
481
- 'Other Contract Issues'
482
- ]
483
- }, updates));
484
-
485
- const degreeOfInterest = (scope, help) => sbsSelect({
486
- name: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
487
- id: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
488
- label: 'How Likely Are You to Pay if Your Issue Could be Resolved?',
489
- help: help,
490
- options: [
491
- 'Definitely',
492
- 'Probably',
493
- 'Maybe',
494
- "Absolutely Can't Afford"
495
- ]
321
+ const disabilityWorkHistory = (scope) => sbsYesNoRadio({
322
+ name: scope ? scope + ':' + 'Disability_Work_History' : 'Disability_Work_History',
323
+ label: 'Have You Had a Full-Time Job Within the Past 5 Years?'
496
324
  });
497
325
 
498
- const degreeOfInterestHelp = (scope) => degreeOfInterest(scope, 'No payment necessary to speak with lawyers.');
326
+ const doctorTreatment = (scope) => sbsYesNoRadio({
327
+ name: scope ? scope + ':' + 'Doctor_Treatment' : 'Doctor_Treatment',
328
+ label: 'Have You Recently Been Treated by a Doctor, Hospital or Clinic?',
329
+ });
499
330
 
500
331
  const email = () => sbsText({
501
332
  $formkit: 'email',
@@ -511,6 +342,19 @@ const email = () => sbsText({
511
342
  }
512
343
  });
513
344
 
345
+ const estateLegalServicesNeeded = (scope) => sbsSelect({
346
+ name: scope ? scope + ':' + 'Estate_Legal_Services_Needed' : 'Estate_Legal_Services_Needed',
347
+ label: "Legal Services Needed for Your Estate:",
348
+ options: [
349
+ "Charitable Giving",
350
+ "Contested Wills",
351
+ "Drafting Wills or Trust",
352
+ "Estate Administration",
353
+ "Asset Protection",
354
+ "Other"
355
+ ]
356
+ });
357
+
514
358
  const firstName = () => sbsText({
515
359
  $formkit: 'text',
516
360
  label: 'First Name:',
@@ -527,6 +371,16 @@ const haveAttorney = (scope) => sbsYesNoRadio({
527
371
  label: 'Already Working with An Attorney?'
528
372
  });
529
373
 
374
+ const haveChildren = (scope) => sbsYesNoRadio({
375
+ name: scope ? scope + ':' + 'Have_Children' : 'Have_Children',
376
+ label: 'Do You Have Children?'
377
+ });
378
+
379
+ const incidentDate = (scope) => sbsDate({
380
+ name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
381
+ label: 'Date of Incident:',
382
+ });
383
+
530
384
  const lastName = () => sbsText({
531
385
  $formkit: 'text',
532
386
  label: 'Last Name:',
@@ -538,6 +392,109 @@ const lastName = () => sbsText({
538
392
  }
539
393
  });
540
394
 
395
+ const lawyerPaymentMethod = (scope) => sbsSelect({
396
+ name: scope ? scope + ':' + 'Lawyer_Payment_Method' : 'Lawyer_Payment_Method',
397
+ label: 'How Will You Pay for Legal Fees if You Hire a Lawyer?',
398
+ help: 'No payment necessary to speak with lawyers.',
399
+ options: [
400
+ 'Cash',
401
+ 'Check',
402
+ 'Credit Card',
403
+ 'Friend',
404
+ 'Family',
405
+ 'Other'
406
+ ]
407
+ });
408
+
409
+ const legalCrossSells$1 = () => col2Checkbox({
410
+ id: 'Legal_CrossSells',
411
+ name: 'Legal_CrossSells',
412
+ help: 'Just hit "Next" if none apply',
413
+ helpClass: 't-text-center !t-text-sm',
414
+ validation: null,
415
+ options: {
416
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
417
+ then: {
418
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
419
+ 'Wills and Trusts': 'Need a Will or Trust',
420
+ 'Workers Compensation': 'Workplace Injury',
421
+ 'Power of Attorney': 'Update Power of Attorney',
422
+ 'Divorce and Separation': 'Need a Divorce or Separation',
423
+ 'Child Custody': 'Need help with Child Custody',
424
+ },
425
+ else: {
426
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
427
+ then: {
428
+ 'DUI and DWI': 'Involved in a DUI/DWI',
429
+ 'Wills and Trusts': 'Need a Will or Trust',
430
+ 'Power of Attorney': 'Update Power of Attorney',
431
+ 'Divorce and Separation': 'Need a Divorce or Separation',
432
+ 'Child Custody': 'Need help with Child Custody',
433
+ // TODO add one more?
434
+ },
435
+ else: {
436
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
437
+ then: {
438
+ 'Personal Injury': 'Personal or Workplace Injury',
439
+ 'Wills and Trusts': 'Need a Will or Trust',
440
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
441
+ 'Power of Attorney': 'Update Power of Attorney',
442
+ 'Divorce and Separation': 'Need a Divorce or Separation',
443
+ 'Child Custody': 'Need help with Child Custody',
444
+ },
445
+ else: {
446
+ 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"',
447
+ then: {
448
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
449
+ 'Personal Injury': 'Personal or Workplace Injury',
450
+ 'DUI and DWI': 'Involved in a DUI/DWI',
451
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
452
+ 'Divorce and Separation': 'Need a Divorce or Separation',
453
+ 'Child Custody': 'Need help with Child Custody',
454
+ },
455
+ else: {
456
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
457
+ then: {
458
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
459
+ 'DUI and DWI': 'Involved in a DUI/DWI',
460
+ 'Wills and Trusts': 'Need a Will or Trust',
461
+ 'Power of Attorney': 'Update Power of Attorney',
462
+ 'Divorce and Separation': 'Need a Divorce or Separation',
463
+ 'Child Custody': 'Need help with Child Custody',
464
+ },
465
+ else: {
466
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
467
+ 'Personal Injury': 'Personal or Workplace Injury',
468
+ 'DUI and DWI': 'Involved in a DUI/DWI',
469
+ 'Wills and Trusts': 'Need a Will or Trust',
470
+ 'Power of Attorney': 'Update Power of Attorney',
471
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
472
+ }
473
+ }
474
+ }
475
+ }
476
+ }
477
+ }
478
+ });
479
+
480
+ const maritalStatus = (scope) => sbsSelect({
481
+ name: scope ? scope + ':' + 'Marital_Status' : 'Marital_Status',
482
+ label: 'Marital Status:',
483
+ options: [
484
+ 'Unmarried, Living Together',
485
+ 'Unmarried, Do Not Live Together',
486
+ 'Married, Living Together',
487
+ 'Separated',
488
+ 'Divorced',
489
+ 'Other'
490
+ ]
491
+ });
492
+
493
+ const pendingCharges = (scope) => sbsYesNoRadio({
494
+ name: scope ? scope + ':' + 'Pending_Charges' : 'Pending_Charges',
495
+ label: 'Do you currently have any pending charges?'
496
+ });
497
+
541
498
  const phone = () => sbsText({
542
499
  $formkit: 'tel',
543
500
  name: 'Primary_Phone',
@@ -556,6 +513,47 @@ const phone = () => sbsText({
556
513
  helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
557
514
  });
558
515
 
516
+ const primaryInjury = (scope) => sbs2ColRadio({
517
+ name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
518
+ label: 'Primary Injury:',
519
+ options: [
520
+ "Anxiety",
521
+ "Back or Neck Pain",
522
+ "Broken Bones",
523
+ "Cuts and Bruises",
524
+ "Headaches",
525
+ "Memory Loss",
526
+ "Loss of Limb",
527
+ "Other (describe on next page)"
528
+ ]
529
+ });
530
+
531
+ const priorAlcoholOffenses = (scope) => sbsYesNoRadio({
532
+ name: scope ? scope + ':' + 'Prior_Alcohol_Offenses' : 'Prior_Alcohol_Offenses',
533
+ label: 'Any Prior Alcohol Related Offenses?'
534
+ });
535
+
536
+ const policeReportFiled = (scope) => sbsYesNoRadio({
537
+ name: scope ? scope + ':' + 'Police_Report_Filed' : 'Police_Report_Filed',
538
+ label: 'Was a Police Report Filed?'
539
+ });
540
+
541
+ const roleInMatterProbate = (scope) => sbsSelect({
542
+ name: scope ? scope + ':' + 'Role_In_Matter_Probate' : 'Role_In_Matter_Probate',
543
+ label: "What Is Your Role in this Matter?",
544
+ options: [
545
+ "Preparing My Will",
546
+ "Executor",
547
+ "Heir",
548
+ "Other"
549
+ ]
550
+ });
551
+
552
+ const socialSecurityDisabilityReceivingBenefits = (scope) => sbsYesNoRadio({
553
+ name: scope ? scope + ':' + 'Social_Security_Disability_Receiving_Benefits' : 'Social_Security_Disability_Receiving_Benefits',
554
+ label: 'Are You Currently Receiving Social Security Disability Benefits?'
555
+ });
556
+
559
557
  const TCPAConsent = () => ({
560
558
  $formkit: 'checkbox',
561
559
  label: '$meta.tcpaLanguage',
@@ -571,6 +569,46 @@ const TCPAConsent = () => ({
571
569
  }
572
570
  });
573
571
 
572
+ const typeOfAlcoholTest = (scope) => sbsSelect({
573
+ name: scope ? scope + ':' + 'Type_Of_Alcohol_Test' : 'Type_Of_Alcohol_Test',
574
+ label: 'Type of Alcohol Test Performed?',
575
+ options: [
576
+ "No Test",
577
+ "Refused Test",
578
+ "Breath Test",
579
+ "Blood Test",
580
+ "Urine Test",
581
+ "Don't Know"
582
+ ]
583
+ });
584
+
585
+ const typeOfAssets = (scope) => col2Checkbox({
586
+ name: scope ? scope + ':' + 'Type_Of_Assets' : 'Type_Of_Assets',
587
+ label: 'Type of Assets:',
588
+ options: [
589
+ "Business Interests",
590
+ "Cash",
591
+ "Life Insurance Policies",
592
+ "Pensions/Retirement",
593
+ "Personal Possessions",
594
+ "Property",
595
+ "Stock/Bonds"
596
+ ]
597
+ });
598
+
599
+ const valueOfAssets = (scope) => sbsSelect({
600
+ name: scope ? scope + ':' + 'Value_Of_Assets' : 'Value_Of_Assets',
601
+ label: 'Value of Your Assets?',
602
+ options: [
603
+ "Less than 50K",
604
+ "50K to 100K",
605
+ "100K to 250K",
606
+ "250K to 500K",
607
+ "500K to 1M",
608
+ "More than 1M"
609
+ ]
610
+ });
611
+
574
612
  const zipcode = () => sbsText({
575
613
  label: 'Zip Code:',
576
614
  placeholder: '#####',
@@ -601,6 +639,21 @@ const group = (name, updates) => {
601
639
  }, updates)
602
640
  };
603
641
 
642
+ const AutoAndCarAccidentsQuestions = (condition, scope) => group(
643
+ 'AutoAndCarAccidentsQuestions',
644
+ {
645
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Auto and Car Accidents"'),
646
+ children: [
647
+ haveAttorney(scope),
648
+ incidentDate(scope),
649
+ atFault(scope),
650
+ primaryInjury(scope),
651
+ doctorTreatment(scope),
652
+ policeReportFiled(scope)
653
+ ]
654
+ }
655
+ );
656
+
604
657
  const ContractsQuestions = () => group(
605
658
  'ContractsQuestions',
606
659
  {
@@ -611,6 +664,122 @@ const ContractsQuestions = () => group(
611
664
  }
612
665
  );
613
666
 
667
+ const ChildCustodyQuestions = (condition, scope) => group(
668
+ 'ChildCustodyQuestions',
669
+ {
670
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Child Custody"'),
671
+ children: [
672
+ haveAttorney(scope),
673
+ childRelationship(scope),
674
+ childHome(scope),
675
+ childPrimaryCaregiver(scope),
676
+ degreeOfInterest(scope),
677
+ lawyerPaymentMethod(scope)
678
+ ]
679
+ }
680
+ );
681
+
682
+ const DivorceQuestions = (condition, scope) => group(
683
+ 'DivorceQuestions',
684
+ {
685
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Divorce and Separation"'),
686
+ children: [
687
+ haveAttorney(scope),
688
+ maritalStatus(scope),
689
+ haveChildren(scope),
690
+ degreeOfInterest(scope),
691
+ lawyerPaymentMethod(scope)
692
+ ]
693
+ }
694
+ );
695
+
696
+ const DUIAndDWIQuestions = (condition, scope) => group(
697
+ 'DUIAndDWIQuestions',
698
+ {
699
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "DUI and DWI"'),
700
+ children: [
701
+ haveAttorney(scope),
702
+ incidentDate(scope),
703
+ priorAlcoholOffenses(scope),
704
+ typeOfAlcoholTest(scope),
705
+ bloodContentAlcoholTest(scope),
706
+ pendingCharges(scope),
707
+ degreeOfInterestHelp(scope)
708
+ ]
709
+ }
710
+ );
711
+
712
+ const PersonalInjuryQuestions = (condition, scope) => group(
713
+ 'PersonalInjuryQuestions',
714
+ {
715
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Personal Injury"'),
716
+ children: [
717
+ haveAttorney(scope),
718
+ incidentDate(scope),
719
+ claimStatus(scope),
720
+ atFault(scope),
721
+ primaryInjury(scope),
722
+ doctorTreatment(scope)
723
+ ]
724
+ }
725
+ );
726
+
727
+ const PowerofAttorneyQuestions = (condition, scope) => group(
728
+ 'PowerofAttorneyQuestions',
729
+ {
730
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Power of Attorney"'),
731
+ children: [
732
+ haveAttorney(scope),
733
+ degreeOfInterestHelp(scope)
734
+ ]
735
+ }
736
+ );
737
+
738
+ const SocialSecurityDisabilityAndInsuranceQuestions = (condition, scope) => group(
739
+ 'SocialSecurityDisabilityAndInsuranceQuestions',
740
+ {
741
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Social Security Disability and Insurance"'),
742
+ children: [
743
+ haveAttorney(scope),
744
+ applicantAge(scope),
745
+ disabilityConditionStopWork(scope),
746
+ disabilityWorkHistory(scope),
747
+ socialSecurityDisabilityReceivingBenefits(scope),
748
+ doctorTreatment(scope)
749
+ ]
750
+ }
751
+ );
752
+
753
+ const WillsAndTrustsQuestions = (condition, scope) => group(
754
+ 'WillsAndTrustsQuestions',
755
+ {
756
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Wills and Trusts"'),
757
+ children: [
758
+ haveAttorney(scope),
759
+ valueOfAssets(scope),
760
+ typeOfAssets(scope),
761
+ roleInMatterProbate(scope),
762
+ estateLegalServicesNeeded(scope),
763
+ degreeOfInterestHelp(scope)
764
+ ]
765
+ }
766
+ );
767
+
768
+ const WorkersCompensationQuestions = (condition, scope) => group(
769
+ 'WorkersCompensationQuestions',
770
+ {
771
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Workers Compensation"'),
772
+ children: [
773
+ haveAttorney(scope),
774
+ incidentDate(scope),
775
+ claimStatus(scope),
776
+ primaryInjury(scope),
777
+ causeOfInjury(scope),
778
+ doctorTreatment(scope)
779
+ ]
780
+ }
781
+ );
782
+
614
783
  const NotSureOrOtherQuestions = () => group(
615
784
  'NotSureOrOtherQuestions',
616
785
  {
@@ -643,312 +812,887 @@ const findLastInput = (n) => {
643
812
  if (res) {
644
813
  return res
645
814
  }
646
- }
647
- return null
815
+ }
816
+ return null
817
+ };
818
+
819
+ const secureIconDefault = {
820
+ $el: 'div',
821
+ if: '$activeStep === $lastStep()',
822
+ attrs: {
823
+ class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
824
+ },
825
+ children: [
826
+ {
827
+ $el: 'img',
828
+ attrs: {
829
+ loading: 'lazy',
830
+ alt: '',
831
+ style: {
832
+ border: 0
833
+ },
834
+ width: '25',
835
+ height: '25',
836
+ src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
837
+ }
838
+ },
839
+ {
840
+ $el: 'span',
841
+ children: 'Secure & Encrypted',
842
+ attrs: {
843
+ class: 't-pl-2 t-pt-1 t-font-medium'
844
+ }
845
+ }
846
+ ]
847
+ };
848
+
849
+ function secureIcon(updates) {
850
+ return merge(
851
+ secureIconDefault,
852
+ updates
853
+ )
854
+ }
855
+
856
+ function questionsStepHeadline(updates) {
857
+ return {
858
+ $el: 'h3',
859
+ children: updates.headline || 'Tell Us About Your Situation',
860
+ attrs: {
861
+ 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'
862
+ }
863
+ }
864
+ }
865
+
866
+ function crossSellQuestionsStepHeadline(updates) {
867
+ return {
868
+ $el: 'h3',
869
+ children: updates.headline || 'Tell Us About Your Situation',
870
+ attrs: {
871
+ 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'
872
+ }
873
+ }
874
+ }
875
+
876
+ function crossSellQuestionsStepSubHeadline(updates) {
877
+ return {
878
+ $el: 'h5',
879
+ children: updates.subheadline || 'Tell us about your situation:',
880
+ attrs: {
881
+ class: 't-flex t-justify-center t-text-dark t-text-center !t-text-lg t-font-semibold t-pb-4 t-pt-0 t-px-3'
882
+ }
883
+ }
884
+ }
885
+
886
+ function commentsStepHeadline(updates) {
887
+ return {
888
+ $el: 'h3',
889
+ children: updates.headline || 'Additional Case Details',
890
+ attrs: {
891
+ 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 || '')
892
+ }
893
+ }
894
+ }
895
+
896
+ function firstAndLastStepHeadline(updates) {
897
+ return {
898
+ $el: 'h3',
899
+ children: updates.headline || 'Please Provide a Contact Name',
900
+ attrs: {
901
+ 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 || '')
902
+ }
903
+ }
904
+ }
905
+
906
+ function legalCrossSellsStepHeadline(updates) {
907
+ return {
908
+ $el: 'h3',
909
+ children: updates.headline || 'Do any of the following situations apply?',
910
+ attrs: {
911
+ 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 || '')
912
+ }
913
+ }
914
+ }
915
+
916
+ function contactStepHeadline(updates) {
917
+ return {
918
+ $el: 'h3',
919
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
920
+ attrs: {
921
+ 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 || '')
922
+ }
923
+ }
924
+ }
925
+
926
+ function contactStepSubHeadline(updates) {
927
+ return {
928
+ $el: 'h5',
929
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
930
+ attrs: {
931
+ 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 || '')
932
+ }
933
+ }
934
+ }
935
+
936
+ const TRUSTED_FORM_JS = `(function() {
937
+ if (window.xxTrustedFormLoaded) {
938
+ return
939
+ }
940
+ var vid = '';
941
+ if (typeof window.zar !== 'undefined') {
942
+ vid = window.zar.getVID();
943
+ }
944
+ window.xxTrustedFormLoaded = true;
945
+ var sandbox = document.location.hostname.indexOf('localhost') > -1 ? 'true' : 'false'
946
+ var tf = document.createElement('script');
947
+ tf.type = 'text/javascript'; tf.async = true;
948
+ tf.src = ("https:" == document.location.protocol ? 'https' : 'http') + "://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&identifier=" + vid + "&ping_field=xxTrustedFormPingUrl&provideReferrer=false&invert_field_sensitivity=true&sandbox=" + sandbox + "&l=" + new Date().getTime() + Math.random();
949
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);
950
+ })();`;
951
+
952
+ function trustedFormScript() {
953
+ return {
954
+ $el: 'script',
955
+ if: '$activeStep === $lastStep()',
956
+ children: TRUSTED_FORM_JS
957
+ }
958
+ }
959
+
960
+ const stepDefaults = (step, stepKey) => ({
961
+ $el: 'section',
962
+ if: '$stepEnabled("' + step + '")',
963
+ attrs: {
964
+ hidden: '$activeStep !== "' + step + '"',
965
+ key: stepKey ? stepKey : step
966
+ }
967
+ });
968
+
969
+ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
970
+ if (typeof nextOnEnter === 'undefined') {
971
+ nextOnEnter = true;
972
+ }
973
+ if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
974
+ const lastInput = findLastInput(inputs[inputs.length - 1]);
975
+ if (lastInput && nextOnEnter === true) {
976
+ lastInput.onKeypress = NEXT_ON_ENTER;
977
+ }
978
+ if (lastInput && nextOnInput === true) {
979
+ lastInput.onInput = NEXT_ON_INPUT;
980
+ }
981
+ }
982
+
983
+ return merge(
984
+ stepDefaults(name, stepKey),
985
+ {
986
+ children: [
987
+ {
988
+ $formkit: 'group',
989
+ id: name,
990
+ name: name,
991
+ nextStepMap: nextStepMap,
992
+ autoFocus: autoFocus,
993
+ children: inputs
994
+ }
995
+ ]
996
+ }
997
+ )
998
+ }
999
+
1000
+ function contractsTOLPAndZip(updates = {}) {
1001
+ return step(
1002
+ 'contractsTOLPAndZip',
1003
+ [
1004
+ {
1005
+ $formkit: 'hidden',
1006
+ name: "Type_Of_Legal_Problem",
1007
+ id: "Type_Of_Legal_Problem",
1008
+ value: "Business Lawyers"
1009
+ },
1010
+ {
1011
+ $formkit: 'hidden',
1012
+ name: "Business_Services",
1013
+ id: "Business_Services",
1014
+ value: "Contracts"
1015
+ },
1016
+ contractsTOLPDisplay(),
1017
+ zipcode()
1018
+ ],
1019
+ updates.nextOnEnter,
1020
+ updates.nextOnInput,
1021
+ updates.stepKey,
1022
+ updates.nextStepMap
1023
+ )
1024
+ }
1025
+
1026
+ function commentsWithBankruptcy(updates = {}) {
1027
+ return step(
1028
+ 'commentsWithBankruptcy',
1029
+ [
1030
+ commentsStepHeadline(updates),
1031
+ comments({
1032
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1033
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1034
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1035
+ }),
1036
+ bankruptcyCrossSell(),
1037
+ {
1038
+ $el: 'div',
1039
+ if: '$get(CrossSell_Bankruptcy).value == true',
1040
+ children: [
1041
+ comments({
1042
+ label: 'Bankruptcy or debt details:',
1043
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1044
+ inputClass: '!t-h-16'
1045
+ }, 'CrossSell:Bankruptcy')
1046
+ ],
1047
+ }
1048
+ ],
1049
+ false // nextOnEnter
1050
+ )
1051
+ }
1052
+
1053
+ function contactInfo(updates = {}) {
1054
+ return step(
1055
+ 'contactInfo',
1056
+ [
1057
+ contactStepHeadline(updates),
1058
+ contactStepSubHeadline(updates),
1059
+ trustedFormScript(),
1060
+ email(),
1061
+ phone(),
1062
+ TCPAConsent(),
1063
+ secureIcon()
1064
+ ],
1065
+ false, // nextOnEnter
1066
+ )
1067
+ }
1068
+
1069
+ function firstAndLastV2(updates = {}) {
1070
+ return step(
1071
+ 'firstAndLast',
1072
+ [
1073
+ firstAndLastStepHeadline(updates),
1074
+ firstName(),
1075
+ lastName()
1076
+ ],
1077
+ updates.nextOnEnter
1078
+ )
1079
+ }
1080
+
1081
+
1082
+ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1083
+ return step(
1084
+ 'autoAndCarAccidentCrossSellQuestions',
1085
+ [
1086
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Compensation' }),
1087
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your accident:' }),
1088
+ AutoAndCarAccidentsQuestions("true", 'CrossSell:Auto_and_Car_Accidents'),
1089
+ comments(
1090
+ {
1091
+ label: 'Accident Description:',
1092
+ placeholder: 'Please describe your accident in a few words...',
1093
+ inputClass: '!t-h-16'
1094
+ },
1095
+ 'CrossSell:Auto_and_Car_Accidents'
1096
+ )
1097
+ ],
1098
+ updates.nextOnEnter
1099
+ )
1100
+ }
1101
+
1102
+ function childCustodyCrossSellQuestions(updates = {}) {
1103
+ return step(
1104
+ 'childCustodyCrossSellQuestions',
1105
+ [
1106
+ crossSellQuestionsStepHeadline({ headline: 'Child Custody Information' }),
1107
+ ChildCustodyQuestions("true", 'CrossSell:Child_Custody'),
1108
+ comments(
1109
+ {
1110
+ label: 'Description:',
1111
+ placeholder: 'Please describe your situation in a few words...',
1112
+ inputClass: '!t-h-16'
1113
+ },
1114
+ 'CrossSell:Child_Custody'
1115
+ )
1116
+ ],
1117
+ updates.nextOnEnter
1118
+ )
1119
+ }
1120
+
1121
+ function divorceAndSeparationCrossSellQuestions(updates = {}) {
1122
+ return step(
1123
+ 'divorceAndSeparationCrossSellQuestions',
1124
+ [
1125
+ crossSellQuestionsStepHeadline({ headline: 'Divorce or Separation Information' }),
1126
+ DivorceQuestions("true", 'CrossSell:Divorce_and_Separation'),
1127
+ comments(
1128
+ {
1129
+ label: 'Description:',
1130
+ placeholder: 'Please describe your situation in a few words...',
1131
+ inputClass: '!t-h-16'
1132
+ },
1133
+ 'CrossSell:Divorce_and_Separation'
1134
+ )
1135
+ ],
1136
+ updates.nextOnEnter
1137
+ )
1138
+ }
1139
+
1140
+ function duiAndDWICrossSellQuestions(updates = {}) {
1141
+ return step(
1142
+ 'duiAndDWICrossSellQuestions',
1143
+ [
1144
+ crossSellQuestionsStepHeadline({ headline: 'About Your DUI/DWI' }),
1145
+ DUIAndDWIQuestions("true", 'CrossSell:DUI_and_DWI'),
1146
+ comments(
1147
+ {
1148
+ label: 'Incident Description:',
1149
+ placeholder: 'Please describe your incident in a few words...',
1150
+ inputClass: '!t-h-16'
1151
+ },
1152
+ 'CrossSell:DUI_and_DWI'
1153
+ )
1154
+ ],
1155
+ updates.nextOnEnter
1156
+ )
1157
+ }
1158
+
1159
+ function ssdiCrossSellQuestions(updates = {}) {
1160
+ return step(
1161
+ 'ssdiCrossSellQuestions',
1162
+ [
1163
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Benefits' }),
1164
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your disability:' }),
1165
+ SocialSecurityDisabilityAndInsuranceQuestions("true", 'CrossSell:Social_Security_Disability_and_Insurance'),
1166
+ comments(
1167
+ {
1168
+ label: 'Description:',
1169
+ placeholder: 'Please describe your situation in a few words...',
1170
+ inputClass: '!t-h-16'
1171
+ },
1172
+ 'CrossSell:Social_Security_Disability_and_Insurance'
1173
+ )
1174
+ ],
1175
+ updates.nextOnEnter
1176
+ )
1177
+ }
1178
+
1179
+ function personalInjuryCrossSellQuestions(updates = {}) {
1180
+ return step(
1181
+ 'personalInjuryCrossSellQuestions',
1182
+ [
1183
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Compensation' }),
1184
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your injury:' }),
1185
+ PersonalInjuryQuestions("true", 'CrossSell:Personal_Injury'),
1186
+ comments(
1187
+ {
1188
+ label: 'Injury Description:',
1189
+ placeholder: 'Please describe your injury in a few words...',
1190
+ inputClass: '!t-h-16'
1191
+ },
1192
+ 'CrossSell:Personal_Injury'
1193
+ )
1194
+ ],
1195
+ updates.nextOnEnter
1196
+ )
1197
+ }
1198
+
1199
+ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1200
+ return step(
1201
+ 'powerOfAttorneyCrossSellQuestions',
1202
+ [
1203
+ crossSellQuestionsStepHeadline({ headline: 'Power of Attorney Information' }),
1204
+ PowerofAttorneyQuestions("true", 'CrossSell:Power_of_Attorney'),
1205
+ comments(
1206
+ {
1207
+ label: 'Description:',
1208
+ placeholder: 'Please describe your situation in a few words...',
1209
+ inputClass: '!t-h-16'
1210
+ },
1211
+ 'CrossSell:Power_of_Attorney'
1212
+ )
1213
+ ],
1214
+ updates.nextOnEnter
1215
+ )
1216
+ }
1217
+
1218
+ function willsAndTrustsCrossSellQuestions(updates = {}) {
1219
+ return step(
1220
+ 'willsAndTrustsCrossSellQuestions',
1221
+ [
1222
+ crossSellQuestionsStepHeadline({ headline: 'Will or Trust Information' }),
1223
+ WillsAndTrustsQuestions("true", 'CrossSell:Wills_and_Trusts'),
1224
+ comments(
1225
+ {
1226
+ label: 'Description:',
1227
+ placeholder: 'Please describe your situation in a few words...',
1228
+ inputClass: '!t-h-16'
1229
+ },
1230
+ 'CrossSell:Wills_and_Trusts'
1231
+ )
1232
+ ],
1233
+ updates.nextOnEnter
1234
+ )
1235
+ }
1236
+
1237
+ function workersCompensationCrossSellQuestions(updates = {}) {
1238
+ return step(
1239
+ 'workersCompensationCrossSellQuestions',
1240
+ [
1241
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Benefits' }),
1242
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your injury:' }),
1243
+ WorkersCompensationQuestions("true", 'CrossSell:Workers_Compensation'),
1244
+ comments(
1245
+ {
1246
+ label: 'Injury Description:',
1247
+ placeholder: 'Please describe your injury in a few words...',
1248
+ inputClass: '!t-h-16'
1249
+ },
1250
+ 'CrossSell:Workers_Compensation'
1251
+ )
1252
+ ],
1253
+ updates.nextOnEnter
1254
+ )
1255
+ }
1256
+
1257
+ function contractsTOLPQuestions(updates = {}) {
1258
+ return step(
1259
+ 'TOLPQuestions',
1260
+ [
1261
+ questionsStepHeadline(updates),
1262
+ ContractsQuestions(),
1263
+ NotSureOrOtherQuestions()
1264
+ ],
1265
+ updates.nextOnEnter
1266
+ )
1267
+ }
1268
+
1269
+ function legalCrossSells(updates = {}) {
1270
+ return step(
1271
+ 'legalCrossSells',
1272
+ [
1273
+ legalCrossSellsStepHeadline(updates),
1274
+ legalCrossSells$1(),
1275
+ ],
1276
+ updates.nextOnEnter,
1277
+ false,
1278
+ // Note: we should probably scope this stepKey to this step name
1279
+ '$get(Type_Of_Legal_Problem).value'
1280
+ )
1281
+ }
1282
+
1283
+ // ------ Common
1284
+
1285
+ const formNavigation = () => ({
1286
+ $el: 'div',
1287
+ attrs: {
1288
+ class: 'step-nav'
1289
+ },
1290
+ children: [
1291
+ {
1292
+ $formkit: 'button',
1293
+ name: 'back_button',
1294
+ onClick: '$setPreviousStep($prevStepFunc($get(form)))',
1295
+ children: 'Back',
1296
+ style: {
1297
+ if: '$activeStep === $firstStep()',
1298
+ then: 'visibility: hidden;'
1299
+ }
1300
+ },
1301
+ {
1302
+ $formkit: 'button',
1303
+ name: 'next_button',
1304
+ onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
1305
+ children: {
1306
+ if: '$activeStep === $firstStep()',
1307
+ then: 'Start',
1308
+ else: 'Next'
1309
+ },
1310
+ outerClass: {
1311
+ if: '$activeStep === $lastStep()',
1312
+ then: 't-hidden',
1313
+ else: ''
1314
+ },
1315
+ style: {
1316
+ if: '$activeStep === $lastStep()',
1317
+ then: 'display: none;'
1318
+ }
1319
+ },
1320
+ {
1321
+ $formkit: 'submit',
1322
+ name: 'submit_button',
1323
+ label: 'Submit',
1324
+ if: '$activeStep === $lastStep()',
1325
+ style: {
1326
+ if: '$activeStep !== $lastStep()',
1327
+ then: 'display: none;'
1328
+ }
1329
+ }
1330
+ ]
1331
+ });
1332
+
1333
+ const formDetails = () => ({
1334
+ $el: 'pre',
1335
+ if: '$urlParam("fdbg", "") == 1',
1336
+ children: [
1337
+ {
1338
+ $el: 'pre',
1339
+ children: '$stringify( $get(form).value )',
1340
+ attrs: {
1341
+ class: 't-text-xs',
1342
+ style: 'overflow: scroll'
1343
+ }
1344
+ },
1345
+ {
1346
+ $el: 'pre',
1347
+ children: ['activeStep: ', '$activeStep'],
1348
+ attrs: {
1349
+ class: 't-text-xs',
1350
+ style: 'overflow: scroll'
1351
+ }
1352
+ },
1353
+ {
1354
+ $el: 'pre',
1355
+ children: ['stepHistory: ', '$stepHistory'],
1356
+ attrs: {
1357
+ class: 't-text-xs',
1358
+ style: 'overflow: scroll'
1359
+ }
1360
+ },
1361
+ {
1362
+ $el: 'pre',
1363
+ children: ['stepQueue: ', '$stepQueue'],
1364
+ attrs: {
1365
+ class: 't-text-xs',
1366
+ style: 'overflow: scroll'
1367
+ }
1368
+ },
1369
+ {
1370
+ $el: 'pre',
1371
+ children: ['steps: ', '$stepKeys()'],
1372
+ attrs: {
1373
+ class: 't-text-xs',
1374
+ style: 'overflow: scroll'
1375
+ }
1376
+ }
1377
+ ]
1378
+ });
1379
+
1380
+ const formPropDefaults = {
1381
+ type: 'form',
1382
+ id: 'form',
1383
+ config: { validationVisibility: 'submit' },
1384
+ onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
1385
+ plugins: '$plugins',
1386
+ actions: false,
1387
+ anchorElement: 'form-anchor',
1388
+ useLocalStorage: true,
1389
+ prepop: {
1390
+ fromURL: true
1391
+ },
1392
+ errorCodes: {
1393
+ 403: { message: "An Error Occurred", abort: false },
1394
+ 409: { abort: false },
1395
+ 429: "An Error Occurred",
1396
+ 504: { message: "An Error Occurred", abort: false },
1397
+ },
1398
+ formClass: '!t-max-w-[40rem]'
648
1399
  };
649
1400
 
650
- function questionsStepHeadline(updates) {
651
- return {
652
- $el: 'h3',
653
- children: updates.headline || 'Tell Us About Your Situation',
654
- attrs: {
655
- 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'
656
- }
1401
+ function formProps(updates) {
1402
+ const props = merge(
1403
+ formPropDefaults,
1404
+ updates
1405
+ );
1406
+ if (props.formId && !props.name) {
1407
+ props.name = props.formId;
657
1408
  }
1409
+ return props
658
1410
  }
659
1411
 
660
- function commentsStepHeadline(updates) {
1412
+ const metaDefaults = {
1413
+ tcpaLanguage: TCPA_LANGUAGE
1414
+ };
1415
+
1416
+ function metaProps(updates) {
1417
+ const data = merge(
1418
+ metaDefaults,
1419
+ updates
1420
+ );
661
1421
  return {
662
- $el: 'h3',
663
- children: updates.headline || 'Additional Case Details',
664
- attrs: {
665
- 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 || '')
666
- }
1422
+ type: 'meta',
1423
+ data
667
1424
  }
668
1425
  }
669
1426
 
670
- function firstAndLastStepHeadline(updates) {
671
- return {
672
- $el: 'h3',
673
- children: updates.headline || 'Please Provide a Contact Name',
674
- attrs: {
675
- 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 || '')
676
- }
677
- }
1427
+ function defaultMetaProps() {
1428
+ return metaProps({
1429
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1430
+ commentsPlaceholders: TOLPCommentsPlaceholders,
1431
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1432
+ finalHeadlines: TOLPFinalHeadlines,
1433
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1434
+ finalSubHeadlines: TOLPFinalSubHeadlines,
1435
+ })
678
1436
  }
679
1437
 
680
- function contactStepHeadline(updates) {
681
- return {
682
- $el: 'h3',
683
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
684
- attrs: {
685
- 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 || '')
1438
+ const dynamicSchemaNode = {
1439
+ $cmp: 'FormKitSchema',
1440
+ if: '$get(Type_Of_Legal_Problem).value',
1441
+ props: {
1442
+ schema: '$meta.dynamicSchema',
1443
+ data: '$buildData($meta)'
1444
+ }
1445
+ };
1446
+
1447
+ const formAnchorDefaults = {
1448
+ $el: 'div',
1449
+ children: [
1450
+ {
1451
+ $el: 'div',
1452
+ attrs: {
1453
+ id: 'form-anchor',
1454
+ class: 't-absolute',
1455
+ style: { top: '-30px', left: 0 }
1456
+ }
686
1457
  }
1458
+ ],
1459
+ attrs: {
1460
+ class: 't-relative'
687
1461
  }
1462
+ };
1463
+
1464
+ function formAnchor(updates) {
1465
+ return merge(
1466
+ formAnchorDefaults,
1467
+ updates
1468
+ )
688
1469
  }
689
1470
 
690
- function contactStepSubHeadline(updates) {
1471
+ function headlineDefaults(updates = {}) {
691
1472
  return {
692
- $el: 'h5',
693
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
1473
+ $el: 'h1',
694
1474
  attrs: {
695
- 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 || '')
1475
+ class: 't-flex t-justify-center t-text-center !t-text-[2rem] t-font-semibold t-pt-5 t-px-7 md:t-px-3' + ' ' + (updates.headlineClass || '')
696
1476
  }
697
1477
  }
698
1478
  }
699
1479
 
700
- const TRUSTED_FORM_JS = `(function() {
701
- if (window.xxTrustedFormLoaded) {
702
- return
703
- }
704
- var vid = '';
705
- if (typeof window.zar !== 'undefined') {
706
- vid = window.zar.getVID();
707
- }
708
- window.xxTrustedFormLoaded = true;
709
- var sandbox = document.location.hostname.indexOf('localhost') > -1 ? 'true' : 'false'
710
- var tf = document.createElement('script');
711
- tf.type = 'text/javascript'; tf.async = true;
712
- tf.src = ("https:" == document.location.protocol ? 'https' : 'http') + "://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&identifier=" + vid + "&ping_field=xxTrustedFormPingUrl&provideReferrer=false&invert_field_sensitivity=true&sandbox=" + sandbox + "&l=" + new Date().getTime() + Math.random();
713
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);
714
- })();`;
715
-
716
- function trustedFormScript() {
717
- return {
718
- $el: 'script',
719
- if: '$activeStep === $lastStep()',
720
- children: TRUSTED_FORM_JS
721
- }
1480
+ function headline(updates = {}) {
1481
+ return merge(
1482
+ headlineDefaults(updates),
1483
+ updates
1484
+ )
722
1485
  }
723
1486
 
724
- const stepDefaults = (step, stepKey) => ({
725
- $el: 'section',
726
- if: '$stepEnabled("' + step + '")',
727
- attrs: {
728
- hidden: '$activeStep !== "' + step + '"',
729
- key: stepKey ? stepKey : step
730
- }
731
- });
732
-
733
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
734
- if (typeof nextOnEnter === 'undefined') {
735
- nextOnEnter = true;
736
- }
737
- if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
738
- const lastInput = findLastInput(inputs[inputs.length - 1]);
739
- if (lastInput && nextOnEnter === true) {
740
- lastInput.onKeypress = NEXT_ON_ENTER;
741
- }
742
- if (lastInput && nextOnInput === true) {
743
- lastInput.onInput = NEXT_ON_INPUT;
1487
+ function subHeadlineDefaults(updates = {}) {
1488
+ return {
1489
+ $el: 'h3',
1490
+ attrs: {
1491
+ class: 't-flex t-justify-center t-text-center !t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10' + ' ' + (updates.subheadlineClass || '')
744
1492
  }
745
1493
  }
1494
+ }
746
1495
 
1496
+ function subHeadline(updates = {}) {
747
1497
  return merge(
748
- stepDefaults(name, stepKey),
749
- {
750
- children: [
751
- {
752
- $formkit: 'group',
753
- id: name,
754
- name: name,
755
- nextStepMap: nextStepMap,
756
- autoFocus: autoFocus,
757
- children: inputs
758
- }
759
- ]
760
- }
1498
+ subHeadlineDefaults(updates),
1499
+ updates
761
1500
  )
762
1501
  }
763
1502
 
764
- function contractsTOLPAndZip(updates = {}) {
765
- return step(
766
- 'contractsTOLPAndZip',
767
- [
768
- {
769
- $formkit: 'hidden',
770
- name: "Type_Of_Legal_Problem",
771
- id: "Type_Of_Legal_Problem",
772
- value: "Business Lawyers"
773
- },
774
- {
775
- $formkit: 'hidden',
776
- name: "Business_Services",
777
- id: "Business_Services",
778
- value: "Contracts"
779
- },
780
- contractsTOLPDisplay(),
781
- zipcode()
782
- ],
783
- updates.nextOnEnter
784
- )
785
- }
1503
+ const hiddenInputsBase = [
1504
+ {
1505
+ $formkit: 'hidden',
1506
+ name: "gclid",
1507
+ value: null
1508
+ },
1509
+ {
1510
+ $formkit: 'hidden',
1511
+ name: "campaignid",
1512
+ value: null
1513
+ },
1514
+ {
1515
+ $formkit: 'hidden',
1516
+ name: "s",
1517
+ value: null
1518
+ }
1519
+ ];
786
1520
 
787
- function commentsWithBankruptcyV2(updates = {}) {
788
- return step(
789
- 'commentsWithBankruptcy',
790
- [
791
- commentsStepHeadline(updates),
792
- comments({
793
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
794
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
795
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-40' : updates.inputClass,
796
- }),
797
- bankruptcyCrossSell(),
798
- {
799
- $el: 'div',
800
- if: '$get(CrossSell_Bankruptcy).value == true',
801
- children: [
802
- comments({
803
- label: 'Bankruptcy or debt details:',
804
- placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
805
- inputClass: '!t-h-16'
806
- }, 'CrossSell:Bankruptcy')
807
- ],
808
- }
809
- ],
810
- updates.nextOnEnter,
811
- )
812
- }
1521
+ const hiddenInputsLegal = [
1522
+ {
1523
+ $formkit: 'hidden',
1524
+ name: "vertical",
1525
+ value: "Legal"
1526
+ },
1527
+ {
1528
+ $formkit: 'hidden',
1529
+ name: "TCPA_Language",
1530
+ value: "$meta.tcpaLanguage"
1531
+ },
1532
+ ...hiddenInputsBase
1533
+ ];
813
1534
 
814
- function contactInfoV2(updates = {}) {
815
- return step(
816
- 'contactInfo',
817
- [
818
- contactStepHeadline(updates),
819
- contactStepSubHeadline(updates),
820
- // Added TF everywhere
821
- trustedFormScript(),
822
- email(),
823
- phone(),
824
- TCPAConsent(),
825
- secureIcon()
826
- ],
827
- updates.nextOnEnter
828
- )
829
- }
1535
+ const legalRedirectMapDefaults = {
1536
+ '*': LegalRedirectUrl()
1537
+ };
830
1538
 
831
- function firstAndLastV2(updates = {}) {
832
- return step(
833
- 'firstAndLast',
834
- [
835
- firstAndLastStepHeadline(updates),
836
- firstName(),
837
- lastName()
838
- ],
839
- updates.nextOnEnter
840
- )
841
- }
842
1539
 
843
- function contractsTOLPQuestions(updates = {}) {
844
- return step(
845
- 'TOLPQuestions',
846
- [
847
- questionsStepHeadline(updates),
848
- ContractsQuestions(),
849
- NotSureOrOtherQuestions()
850
- ],
851
- updates.nextOnEnter
1540
+ function legalRedirectMap(updates) {
1541
+ return merge(
1542
+ legalRedirectMapDefaults,
1543
+ updates
852
1544
  )
853
1545
  }
854
1546
 
855
- const formNavigationV2 = () => ({
856
- $el: 'div',
857
- attrs: {
858
- class: 'step-nav'
859
- },
860
- children: [
861
- {
862
- $formkit: 'button',
863
- name: 'back_button',
864
- onClick: '$setPreviousStep($prevStepFunc($get(form)))',
865
- children: 'Back',
866
- style: {
867
- if: '$activeStep === $firstStep()',
868
- then: 'visibility: hidden;'
869
- }
870
- },
871
- {
872
- $formkit: 'button',
873
- name: 'next_button',
874
- onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
875
- children: {
876
- if: '$activeStep === $firstStep()',
877
- then: 'Start',
878
- else: 'Next'
879
- },
880
- outerClass: {
881
- if: '$activeStep === $lastStep()',
882
- then: 't-hidden',
883
- else: ''
884
- },
885
- style: {
886
- if: '$activeStep === $lastStep()',
887
- then: 'display: none;'
888
- }
889
- },
890
- {
891
- $formkit: 'submit',
892
- name: 'submit_button',
893
- label: 'Submit',
894
- if: '$activeStep === $lastStep()',
895
- style: {
896
- if: '$activeStep !== $lastStep()',
897
- then: 'display: none;'
898
- }
899
- }
900
- ]
901
- });
1547
+ const TOLPCommentsPlaceholders = {
1548
+ 'Adoption': 'Example: "I need help with adoption forms"',
1549
+ 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
1550
+ 'Auto and Car Accidents': 'Example: "A truck crashed into my car on the highway" or "I\'ve been involved in a hit and run accident"',
1551
+ 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
1552
+ 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
1553
+ 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
1554
+ 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
1555
+ 'Child Custody': 'Example: "Need help getting custody"',
1556
+ 'Child Support': 'Example: "Issues with child support payments"',
1557
+ 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
1558
+ 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
1559
+ 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
1560
+ 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
1561
+ 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
1562
+ 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
1563
+ 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
1564
+ 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
1565
+ 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
1566
+ 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
1567
+ 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
1568
+ 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
1569
+ 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
1570
+ 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
1571
+ 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
1572
+ 'Guardianship': 'Example: "I need help with guardianship documents"',
1573
+ 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
1574
+ 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
1575
+ 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
1576
+ 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
1577
+ 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
1578
+ 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
1579
+ 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
1580
+ 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
1581
+ 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
1582
+ 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
1583
+ 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
1584
+ 'Long Term Disability': 'Example: "I was injured on the job and would like to file for benefits" or "I need help filing for disability benefits"',
1585
+ 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
1586
+ 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
1587
+ 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
1588
+ 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
1589
+ 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
1590
+ 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
1591
+ 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
1592
+ 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
1593
+ 'Social Security Disability and Insurance': 'Example: "I would like help filing for disability benefits" or "I\'ve been denied for SSDI and would like to appeal"',
1594
+ 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
1595
+ 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
1596
+ 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
1597
+ 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
1598
+ 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
1599
+ 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
1600
+ 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
1601
+ 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
1602
+ 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
1603
+ };
902
1604
 
903
- const formDetails = () => ({
904
- $el: 'pre',
905
- if: '$urlParam("fdbg", "") == 1',
906
- children: [
907
- {
908
- $el: 'pre',
909
- children: '$stringify( $get(form).value )',
910
- attrs: {
911
- class: 't-text-xs',
912
- style: 'overflow: scroll'
913
- }
914
- },
915
- {
916
- $el: 'pre',
917
- children: ['activeStep: ', '$activeStep'],
918
- attrs: {
919
- class: 't-text-xs',
920
- style: 'overflow: scroll'
921
- }
922
- },
923
- {
924
- $el: 'pre',
925
- children: ['stepHistory: ', '$stepHistory'],
926
- attrs: {
927
- class: 't-text-xs',
928
- style: 'overflow: scroll'
929
- }
930
- },
931
- {
932
- $el: 'pre',
933
- children: ['stepQueue: ', '$stepQueue'],
934
- attrs: {
935
- class: 't-text-xs',
936
- style: 'overflow: scroll'
937
- }
938
- },
939
- {
940
- $el: 'pre',
941
- children: ['steps: ', '$stepKeys()'],
942
- attrs: {
943
- class: 't-text-xs',
944
- style: 'overflow: scroll'
945
- }
946
- }
1605
+ const TOLPFinalHeadlines = {
1606
+ // 'Adoption': '',
1607
+ };
1608
+
1609
+ const TOLPFinalSubHeadlines = {
1610
+ 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
1611
+ // 'Asbestos and Mesothelioma': '',
1612
+ 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
1613
+ 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
1614
+ // 'Birth Certificate and Name Change': '',
1615
+ // 'Business Lawyers': '',
1616
+ // 'Child Custody and Support': '',
1617
+ // 'Civil Rights and Discrimination': '',
1618
+ // 'Civil Lawsuit': '',
1619
+ // 'Consumer Lawyers': '',
1620
+ 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
1621
+ // 'Criminal and Felony': '',
1622
+ // 'Debt and Collections': '',
1623
+ 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
1624
+ 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
1625
+ 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
1626
+ // 'Employment and Workplace': '',
1627
+ // 'Expungement': '',
1628
+ // 'Family Issues': '',
1629
+ 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
1630
+ 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
1631
+ // 'Harassment and Discrimination': '',
1632
+ // 'Identity Theft': '',
1633
+ 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
1634
+ // 'Insurance': '',
1635
+ 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
1636
+ // 'Lemon Law': '',
1637
+ 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
1638
+ 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
1639
+ 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
1640
+ 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
1641
+ // 'Power of Attorney': '',
1642
+ 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
1643
+ // 'Product Liability': '',
1644
+ // 'Property Damage': '',
1645
+ 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
1646
+ 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
1647
+ 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
1648
+ // 'Traffic and Tickets': '',
1649
+ 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
1650
+ // 'Victim of a Crime': '',
1651
+ // 'Wills and Trusts': '',
1652
+ 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
1653
+ // 'Wrongful Death': '',
1654
+ // 'Wrongful Termination': '',
1655
+ // 'Not Sure or Other': ''
1656
+ // 'Sexual Harassment': '',
1657
+ // 'Workplace Harassment': '',
1658
+ // 'Non-Workplace Harassment': '',
1659
+ // 'Workplace Discrimination': '',
1660
+ // 'Non-Workplace Discrimination': '',
1661
+ };
1662
+
1663
+
1664
+ const nextStepsMapLegalLegacy = {
1665
+ '*': [
1666
+ 'TOLPQuestions',
1667
+ 'commentsWithBankruptcy',
1668
+ 'legalCrossSells',
1669
+ 'firstAndLast',
1670
+ 'contactInfo',
947
1671
  ]
948
- });
1672
+ };
1673
+
1674
+ const meta = defaultMetaProps();
1675
+
1676
+ meta.data.dynamicSchema = [
1677
+ contractsTOLPQuestions(),
1678
+ commentsWithBankruptcy({
1679
+ placeholder: 'Example: "I need to create a partner agreement for my business."',
1680
+ }),
1681
+ legalCrossSells(),
1682
+ autoAndCarAccidentCrossSellQuestions(),
1683
+ personalInjuryCrossSellQuestions(),
1684
+ workersCompensationCrossSellQuestions(),
1685
+ duiAndDWICrossSellQuestions(),
1686
+ ssdiCrossSellQuestions(),
1687
+ powerOfAttorneyCrossSellQuestions(),
1688
+ willsAndTrustsCrossSellQuestions(),
1689
+ divorceAndSeparationCrossSellQuestions(),
1690
+ childCustodyCrossSellQuestions(),
1691
+ firstAndLastV2(),
1692
+ ];
949
1693
 
950
1694
  const schema = [
951
- defaultMetaProps(),
1695
+ meta,
952
1696
  formAnchor(),
953
1697
  {
954
1698
  $cmp: 'FormKit',
@@ -972,17 +1716,12 @@ const schema = [
972
1716
  class: 'form-body'
973
1717
  },
974
1718
  children: [
975
- contractsTOLPAndZip(),
976
- contractsTOLPQuestions(),
977
- commentsWithBankruptcyV2({
978
- nextOnEnter: false,
979
- placeholder: 'Example: "I need to create a partner agreement for my business."',
980
- }),
981
- firstAndLastV2(),
982
- contactInfoV2({
983
- nextOnEnter: false
1719
+ contractsTOLPAndZip({
1720
+ nextStepMap: nextStepsMapLegalLegacy
984
1721
  }),
985
- formNavigationV2(),
1722
+ dynamicSchemaNode,
1723
+ contactInfo(),
1724
+ formNavigation(),
986
1725
  formDetails()
987
1726
  ]
988
1727
  }