bhl-forms 0.6.5 → 0.6.7

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