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,673 +15,234 @@ 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
- }
101
-
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
- }
68
+ const col2RadioCenter = (updates) => {
69
+ updates.legendClass = 'required t-w-[100%] t-text-center';
70
+ if (typeof updates.fieldsetClass === 'undefined') {
71
+ updates.fieldsetClass = '$reset t-flex t-justify-center';
108
72
  }
109
- }
73
+ updates.optionsClass = 't-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
74
+ updates.innerClass = 't-items-start';
75
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
76
+ updates.optionClass = 't-pl-4 md:t-pl-8 md:t-min-w-[200px]';
77
+ updates.messagesClass = 't-flex t-justify-center';
78
+ updates.helpClass = 't-mt-0 t-mb-4 !t-text-sm t-text-center';
79
+ return radio(updates)
80
+ };
110
81
 
111
- function headline(updates = {}) {
112
- return merge(
113
- headlineDefaults(updates),
114
- updates
115
- )
116
- }
82
+ const sbs2ColRadio = (updates) => {
83
+ updates.legendClass = 'legend-left-flex md:t-max-w-[40%] required';
84
+ updates.fieldsetClass = '$reset side-by-side-flex';
85
+ updates.optionsClass = 'md:t-ml-4 md:t-mt-2 t-grid t-grid-cols-1 md:t-grid-cols-2-125';
86
+ updates.innerClass = 't-flex t-items-start';
87
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
88
+ return radio(updates)
89
+ };
117
90
 
118
- function defaultHeadline() {
119
- return headline({
120
- children: '$urlParam("hl", "Start Here For a Free Consultation")',
121
- if: '$activeStep === $firstStep()'
122
- })
123
- }
91
+ const sbs2ItemRadio = (updates) => {
92
+ updates.legendClass = 'legend-left t-pb-1 required';
93
+ updates.fieldsetClass = '$reset side-by-side t-items-center';
94
+ updates.optionsClass = 't-mt-1 t-grid t-grid-cols-1 md:t-grid-cols-2-125 t-items-center';
95
+ updates.innerClass = 't-flex t-items-center';
96
+ updates.optionClass = 't-pr-1';
97
+ return radio(updates)
98
+ };
124
99
 
125
- function subHeadlineDefaults(updates = {}) {
126
- return {
127
- $el: 'h3',
128
- attrs: {
129
- 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 || '')
130
- }
100
+ const sbsYesNoRadio = (updates) => {
101
+ updates.options = ['Yes', 'No'];
102
+ return sbs2ItemRadio(updates)
103
+ };
104
+
105
+ const verticalButtonRadio = (updates) => {
106
+ updates.legendClass = 'legend-left';
107
+ updates.fieldsetClass = '$reset t-flex t-justify-center t-items-center';
108
+ if (typeof updates.optionsClass === 'undefined') {
109
+ updates.optionsClass = 't-flex t-flex-col sm:t-flex-row t-justify-center t-my-3';
131
110
  }
132
- }
111
+ updates.optionClass = 'radiobtn t-my-2 sm:t-my-0 t-mx-2 md:t-mx-5';
112
+ updates.wrapperClass = '$reset formkit-wrapper t-mb-0 t-flex t-items-center t-h-[100%]';
113
+ updates.labelClass = 't-font-semibold t-text-[#1e448f] t-w-[100%]';
114
+ updates.decoratorIcon = false;
115
+ updates.messagesClass = 't-flex t-justify-center';
116
+ return radio(updates)
117
+ };
133
118
 
134
- function subHeadline(updates = {}) {
135
- return merge(
136
- subHeadlineDefaults(updates),
137
- updates
138
- )
139
- }
119
+ const verticalYesNoRadio = (updates) => {
120
+ updates.options = ['Yes', 'No'];
121
+ updates.optionsClass = 't-flex t-justify-center t-my-3';
122
+ return verticalButtonRadio(updates)
123
+ };
140
124
 
141
- function defaultSubHeadline() {
142
- return subHeadline({
143
- children: '$urlParam("shl", "Our Service is Fast and Free!")',
144
- if: '$activeStep === $firstStep()'
145
- })
146
- }
125
+ const verticalRadio = (updates) => {
126
+ updates.legendClass = 'required';
127
+ updates.fieldsetClass = '$reset t-flex t-justify-center';
128
+ updates.optionsClass = 't-pl-2 t-pt-3';
129
+ updates.innerClass = 't-items-center';
130
+ updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
131
+ updates.optionClass = 't-pl-4 md:t-pl-12';
132
+ updates.messagesClass = 't-flex t-justify-center';
133
+ return radio(updates)
134
+ };
147
135
 
148
- const secureIconDefault = {
149
- $el: 'div',
150
- if: '$activeStep === $lastStep()',
151
- attrs: {
152
- class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
153
- },
154
- children: [
155
- {
156
- $el: 'img',
157
- attrs: {
158
- loading: 'lazy',
159
- alt: '',
160
- style: {
161
- border: 0
162
- },
163
- width: '25',
164
- height: '25',
165
- src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
166
- }
136
+ const select = (updates) => {
137
+ if (updates.name && !updates.id) {
138
+ updates.id = updates.name;
139
+ }
140
+ return merge({
141
+ $formkit: 'select',
142
+ placeholder: "Please Select",
143
+ validation: 'required',
144
+ validationMessages: {
145
+ required: 'Field is required'
167
146
  },
168
- {
169
- $el: 'span',
170
- children: 'Secure & Encrypted',
171
- attrs: {
172
- class: 't-pl-2 t-pt-1 t-font-medium'
173
- }
174
- }
175
- ]
147
+ inputClass: 't-bg-white',
148
+ labelClass: 'required'
149
+ }, updates)
176
150
  };
177
151
 
152
+ const sbsSelect = (updates) => {
153
+ updates.labelClass = 'required';
154
+ updates.wrapperClass = 'side-by-side t-items-center';
155
+ updates.innerClass = 'select-height-content';
156
+ updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
157
+ return select(updates)
158
+ };
178
159
 
179
- function secureIcon(updates) {
180
- return merge(
181
- secureIconDefault,
182
- updates
183
- )
184
- }
185
-
186
- const hiddenInputsBase = [
187
- {
188
- $formkit: 'hidden',
189
- name: "gclid",
190
- value: null
191
- },
192
- {
193
- $formkit: 'hidden',
194
- name: "campaignid",
195
- value: null
196
- },
197
- {
198
- $formkit: 'hidden',
199
- name: "s",
200
- value: null
160
+ const text = (updates) => {
161
+ if (updates.name && !updates.id) {
162
+ updates.id = updates.name;
201
163
  }
202
- ];
203
-
204
- const hiddenInputsLegal = [
205
- {
206
- $formkit: 'hidden',
207
- name: "vertical",
208
- value: "Legal"
209
- },
210
- {
211
- $formkit: 'hidden',
212
- name: "TCPA_Language",
213
- value: "$meta.tcpaLanguage"
214
- },
215
- ...hiddenInputsBase
216
- ];
217
-
218
- const legalRedirectMapDefaults = {
219
- '*': LegalRedirectUrl()
164
+ return merge({
165
+ $formkit: 'text',
166
+ validation: 'required',
167
+ validationMessages: {
168
+ required: 'Field is required'
169
+ },
170
+ labelClass: 'required'
171
+ }, updates)
220
172
  };
221
173
 
174
+ const sbsText = (updates) => {
175
+ updates.wrapperClass = 'side-by-side t-items-center';
176
+ return text(updates)
177
+ };
222
178
 
223
- function legalRedirectMap(updates) {
224
- return merge(
225
- legalRedirectMapDefaults,
226
- updates
227
- )
228
- }
229
-
230
- const legalAllValueOverrideMap = {
231
- 'Civil_Defense': {
232
- 'Yes': {
233
- 'Type_Of_Legal_Problem': 'Defend a Lawsuit'
234
- },
235
- 'No': {
236
- 'Type_Of_Legal_Problem': 'File a Lawsuit'
237
- }
238
- },
239
- 'Type_Of_Legal_Problem_Display': {
240
- // Accidents and PI
241
- 'Auto Accident': {
242
- 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
243
- },
244
- 'Dog Bite': {
245
- 'Type_Of_Legal_Problem': 'Personal Injury'
246
- },
247
- 'Slip and Fall': {
248
- 'Type_Of_Legal_Problem': 'Personal Injury'
249
- },
250
- 'Workplace Injury': {
251
- 'Type_Of_Legal_Problem': 'Workers Compensation'
252
- },
253
- 'Trucking Accident': {
254
- 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
255
- },
256
- 'Motorcycle Accident': {
257
- 'Type_Of_Legal_Problem': 'Auto and Car Accidents',
258
- },
259
- 'Other Accidents or Injuries': {
260
- 'Type_Of_Legal_Problem': 'Personal Injury'
261
- },
262
- // Civil
263
- 'Automobile Accident': {
264
- 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
265
- },
266
- 'Contract Disputes': {
267
- 'Type_Of_Legal_Problem': 'Business Lawyers'
268
- },
269
- 'Defamation and Slander': {
270
- 'Type_Of_Legal_Problem': 'File a Lawsuit'
271
- },
272
- 'Dog Bite': {
273
- 'Type_Of_Legal_Problem': 'Personal Injury'
274
- },
275
- 'Employment and Workplace': {
276
- 'Type_Of_Legal_Problem': 'Employment and Workplace'
277
- },
278
- 'Fraud': {
279
- 'Type_Of_Legal_Problem': 'Consumer Lawyers'
280
- },
281
- 'Medical Malpractice': {
282
- 'Type_Of_Legal_Problem': 'Medical Malpractice'
283
- },
284
- 'Personal Injury': {
285
- 'Type_Of_Legal_Problem': 'Personal Injury'
286
- },
287
- 'Property Damage': {
288
- 'Type_Of_Legal_Problem': 'Property Damage'
289
- },
290
- 'Small Claims': {
291
- 'Type_Of_Legal_Problem': 'File a Lawsuit'
292
- },
293
- 'Real Estate': {
294
- 'Type_Of_Legal_Problem': 'Real Estate'
295
- },
296
- 'Other (describe on next page)': {
297
- 'Type_Of_Legal_Problem': 'Not Sure or Other'
298
- },
299
- // Contracts
300
- 'Contract Creation': {
301
- 'Type_Of_Legal_Problem': 'Business Lawyers',
302
- 'Business_Services': 'Contracts'
303
- },
304
- 'Contract Enforcement': {
305
- 'Type_Of_Legal_Problem': 'Business Lawyers',
306
- 'Business_Services': 'Contracts'
307
- },
308
- 'Contract Cancellation': {
309
- 'Type_Of_Legal_Problem': 'Business Lawyers',
310
- 'Business_Services': 'Contracts'
311
- },
312
- 'Contract Fraud': {
313
- 'Type_Of_Legal_Problem': 'Business Lawyers',
314
- 'Business_Services': 'Contracts'
315
- },
316
- 'Breach of Contract': {
317
- 'Type_Of_Legal_Problem': 'Business Lawyers',
318
- 'Business_Services': 'Contracts'
319
- },
320
- 'Other Contract Issues': {
321
- 'Type_Of_Legal_Problem': 'Business Lawyers',
322
- 'Business_Services': 'Contracts'
323
- },
324
- // Criminal
325
- 'Criminal Defense': {
326
- 'Type_Of_Legal_Problem': 'Criminal and Felony'
327
- },
328
- 'Victim of a Crime': {
329
- 'Type_Of_Legal_Problem': 'Victim of a Crime'
330
- },
331
- 'DUI and DWI': {
332
- 'Type_Of_Legal_Problem': 'DUI and DWI'
333
- },
334
- 'Expungement': {
335
- 'Type_Of_Legal_Problem': 'Expungement'
336
- },
337
- 'Harassment': {
338
- 'Type_Of_Legal_Problem': 'Criminal and Felony'
339
- },
340
- 'Not Sure or Other': {
341
- 'Type_Of_Legal_Problem': 'Not Sure or Other'
342
- },
343
- // Employment and Workplace
344
- 'Workplace Harassment': {
345
- 'Type_Of_Legal_Problem': 'Workplace Harassment'
346
- },
347
- 'Workplace Discrimination': {
348
- 'Type_Of_Legal_Problem': 'Workplace Discrimination'
349
- },
350
- 'Wrongful Termination': {
351
- 'Type_Of_Legal_Problem': 'Wrongful Termination'
352
- },
353
- 'Payment Disputes': {
354
- 'Type_Of_Legal_Problem': 'Employment and Workplace'
355
- },
356
- 'Workers Compensation': {
357
- 'Type_Of_Legal_Problem': 'Workers Compensation'
358
- },
359
- 'Unemployment': {
360
- 'Type_Of_Legal_Problem': 'Unemployment'
361
- },
362
- 'Other Workplace Issues': {
363
- 'Type_Of_Legal_Problem': 'Employment and Workplace'
364
- },
365
- // Malpractice
366
- 'Attorney Malpractice': {
367
- 'Type_Of_Legal_Problem': 'Civil Lawsuit'
368
- },
369
- 'Other Malpractice Issues': {
370
- 'Type_Of_Legal_Problem': 'Not Sure or Other'
371
- },
372
- // Repossession
373
- 'Vehicle Repossession': {
374
- 'Type_Of_Legal_Problem': 'Bankruptcy'
375
- },
376
- 'Property Repossession': {
377
- 'Type_Of_Legal_Problem': 'Bankruptcy'
378
- },
379
- 'Other Repossession Issues': {
380
- 'Type_Of_Legal_Problem': 'Not Sure or Other'
381
- },
382
- // Real Estate
383
- 'Contracts and Agreements': {
384
- 'Type_Of_Legal_Problem': 'Real Estate'
385
- },
386
- 'Deeds, Liens, and Titles': {
387
- 'Type_Of_Legal_Problem': 'Real Estate'
388
- },
389
- 'Foreclosure': {
390
- 'Type_Of_Legal_Problem': 'Foreclosure'
391
- },
392
- 'Insurance': {
393
- 'Type_Of_Legal_Problem': 'Insurance'
394
- },
395
- 'Landlord and Tenant': {
396
- 'Type_Of_Legal_Problem': 'Landlord and Tenant',
397
- },
398
- 'Loans and Mortgages': {
399
- 'Type_Of_Legal_Problem': 'Real Estate',
400
- },
401
- 'Wills, Trusts, and Estates': {
402
- 'Type_Of_Legal_Problem': 'Wills and Trusts'
403
- },
404
- 'Property Damage': {
405
- 'Type_Of_Legal_Problem': 'Property Damage'
179
+ const textArea = (updates) => {
180
+ if (updates.name && !updates.id) {
181
+ updates.id = updates.name;
182
+ }
183
+ return merge({
184
+ $formkit: 'textarea',
185
+ rows: 5,
186
+ maxlength: 500,
187
+ validation: 'required',
188
+ validationMessages: {
189
+ required: 'Field is required'
406
190
  },
407
- 'Other Real Estate Issues': {
408
- 'Type_Of_Legal_Problem': 'Real Estate'
409
- }
191
+ innerClass: 't-max-w-xl',
192
+ labelClass: 'required'
193
+ }, updates)
194
+ };
195
+
196
+ const date = (updates) => {
197
+ if (updates.name && !updates.id) {
198
+ updates.id = updates.name;
410
199
  }
200
+ return merge({
201
+ $formkit: 'DatePicker',
202
+ validation: 'required',
203
+ validationMessages: {
204
+ required: 'Field is required'
205
+ },
206
+ labelClass: 'required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500',
207
+ innerClass: 't-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500'
208
+ }, updates)
411
209
  };
412
210
 
413
- const TOLPCommentsPlaceholders = {
414
- 'Adoption': 'Example: "I need help with adoption forms"',
415
- 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
416
- '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"',
417
- 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
418
- 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
419
- 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
420
- 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
421
- 'Child Custody': 'Example: "Need help getting custody"',
422
- 'Child Support': 'Example: "Issues with child support payments"',
423
- 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
424
- 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
425
- 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
426
- 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
427
- 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
428
- 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
429
- 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
430
- 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
431
- 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
432
- 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
433
- 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
434
- 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
435
- 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
436
- 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
437
- 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
438
- 'Guardianship': 'Example: "I need help with guardianship documents"',
439
- 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
440
- 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
441
- 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
442
- 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
443
- 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
444
- 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
445
- 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
446
- 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
447
- 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
448
- 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
449
- 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
450
- '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"',
451
- 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
452
- 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
453
- 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
454
- 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
455
- 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
456
- 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
457
- 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
458
- 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
459
- '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"',
460
- 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
461
- 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
462
- 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
463
- 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
464
- 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
465
- 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
466
- 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
467
- 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
468
- 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
469
- };
470
-
471
- const TOLPFinalHeadlines = {
472
- // 'Adoption': '',
473
- };
474
-
475
- const TOLPFinalSubHeadlines = {
476
- 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
477
- // 'Asbestos and Mesothelioma': '',
478
- 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
479
- 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
480
- // 'Birth Certificate and Name Change': '',
481
- // 'Business Lawyers': '',
482
- // 'Child Custody and Support': '',
483
- // 'Civil Rights and Discrimination': '',
484
- // 'Civil Lawsuit': '',
485
- // 'Consumer Lawyers': '',
486
- 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
487
- // 'Criminal and Felony': '',
488
- // 'Debt and Collections': '',
489
- 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
490
- 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
491
- 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
492
- // 'Employment and Workplace': '',
493
- // 'Expungement': '',
494
- // 'Family Issues': '',
495
- 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
496
- 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
497
- // 'Harassment and Discrimination': '',
498
- // 'Identity Theft': '',
499
- 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
500
- // 'Insurance': '',
501
- 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
502
- // 'Lemon Law': '',
503
- 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
504
- 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
505
- 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
506
- 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
507
- // 'Power of Attorney': '',
508
- 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
509
- // 'Product Liability': '',
510
- // 'Property Damage': '',
511
- 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
512
- 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
513
- 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
514
- // 'Traffic and Tickets': '',
515
- 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
516
- // 'Victim of a Crime': '',
517
- // 'Wills and Trusts': '',
518
- 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
519
- // 'Wrongful Death': '',
520
- // 'Wrongful Termination': '',
521
- // 'Not Sure or Other': ''
522
- // 'Sexual Harassment': '',
523
- // 'Workplace Harassment': '',
524
- // 'Non-Workplace Harassment': '',
525
- // 'Workplace Discrimination': '',
526
- // 'Non-Workplace Discrimination': '',
527
- };
528
-
529
- // ------ Common Base Settings
530
-
531
- const checkbox = (updates) => {
532
- if (updates.name && !updates.id) {
533
- updates.id = updates.name;
534
- }
535
- return merge({
536
- $formkit: 'checkbox',
537
- validation: 'required',
538
- validationMessages: {
539
- required: 'Field is required'
540
- }
541
- }, updates)
542
- };
543
-
544
- const sbsCheckbox = (updates) => {
545
- updates.legendClass = 'legend-left required';
546
- updates.fieldsetClass = '$reset side-by-side';
547
- updates.optionsClass = 't-pl-1';
548
- updates.innerClass = 't-flex t-items-center';
549
- updates.wrapperClass = 't-mb-3';
550
- return checkbox(updates)
551
- };
552
-
553
- const radio = (updates) => {
554
- if (updates.name && !updates.id) {
555
- updates.id = updates.name;
556
- }
557
- return merge({
558
- $formkit: 'radio',
559
- validation: 'required',
560
- validationMessages: {
561
- required: 'Field is required'
562
- },
563
- optionsClass: 't-pt-3 t-pl-1',
564
- legendClass: 'required'
565
- }, updates)
566
- };
567
-
568
- const col2Radio = (updates) => {
569
- updates.legendClass = 'required';
570
- updates.fieldsetClass = '$reset';
571
- updates.optionsClass = 't-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
572
- updates.innerClass = 't-items-start';
573
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
574
- return radio(updates)
575
- };
576
-
577
- const sbs2ColRadio = (updates) => {
578
- updates.legendClass = 'legend-left-flex md:t-max-w-[40%] required';
579
- updates.fieldsetClass = '$reset side-by-side-flex';
580
- updates.optionsClass = 'md:t-ml-4 md:t-mt-2 t-grid t-grid-cols-1 md:t-grid-cols-2-125';
581
- updates.innerClass = 't-flex t-items-start';
582
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
583
- return radio(updates)
584
- };
585
-
586
- const sbs2ItemRadio = (updates) => {
587
- updates.legendClass = 'legend-left t-pb-1 required';
588
- updates.fieldsetClass = '$reset side-by-side t-items-center';
589
- updates.optionsClass = 't-mt-1 t-grid t-grid-cols-1 md:t-grid-cols-2-125 t-items-center';
590
- updates.innerClass = 't-flex t-items-center';
591
- updates.optionClass = 't-pr-1';
592
- return radio(updates)
593
- };
594
-
595
- const sbsYesNoRadio = (updates) => {
596
- updates.options = ['Yes', 'No'];
597
- return sbs2ItemRadio(updates)
598
- };
599
-
600
- const select = (updates) => {
601
- if (updates.name && !updates.id) {
602
- updates.id = updates.name;
603
- }
604
- return merge({
605
- $formkit: 'select',
606
- placeholder: "Please Select",
607
- validation: 'required',
608
- validationMessages: {
609
- required: 'Field is required'
610
- },
611
- inputClass: 't-bg-white',
612
- labelClass: 'required'
613
- }, updates)
614
- };
615
-
616
- const sbsSelect = (updates) => {
617
- updates.labelClass = 'required';
618
- updates.wrapperClass = 'side-by-side t-items-center';
619
- updates.innerClass = 'select-height-content';
620
- updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
621
- return select(updates)
622
- };
623
-
624
- const text = (updates) => {
625
- if (updates.name && !updates.id) {
626
- updates.id = updates.name;
627
- }
628
- return merge({
629
- $formkit: 'text',
630
- validation: 'required',
631
- validationMessages: {
632
- required: 'Field is required'
633
- },
634
- labelClass: 'required'
635
- }, updates)
636
- };
637
-
638
- const sbsText = (updates) => {
211
+ const sbsDate = (updates) => {
639
212
  updates.wrapperClass = 'side-by-side t-items-center';
640
- return text(updates)
213
+ return date(updates)
641
214
  };
642
215
 
643
- const textArea = (updates) => {
644
- if (updates.name && !updates.id) {
645
- updates.id = updates.name;
646
- }
647
- return merge({
648
- $formkit: 'textarea',
649
- rows: 5,
650
- maxlength: 500,
651
- validation: 'required',
652
- validationMessages: {
653
- required: 'Field is required'
654
- },
655
- innerClass: 't-max-w-xl',
656
- labelClass: 'required'
657
- }, updates)
216
+ const verticalDate = (updates) => {
217
+ updates.wrapperClass = 't-flex t-justify-center';
218
+ updates.inputClass = 't-text-center';
219
+ updates.messagesClass = 't-flex t-justify-center';
220
+ return date(updates)
658
221
  };
659
222
 
660
- const date = (updates) => {
661
- if (updates.name && !updates.id) {
662
- updates.id = updates.name;
223
+ const applicantAge = (scope) => sbsText({
224
+ name: scope ? scope + ':' + 'Applicant_Age' : 'Applicant_Age',
225
+ label: 'Age of Applicant?',
226
+ placeholder: 'Age between 18 and 65',
227
+ maxlength: 2,
228
+ inputmode: "numeric",
229
+ validation: "required|min:18,max:65",
230
+ validationMessages: {
231
+ required: 'Applicant Age is required',
232
+ min: 'Invalid Age - must be between 18 and 65',
233
+ max: 'Invalid Age - must be between 18 and 65',
663
234
  }
664
- return merge({
665
- $formkit: 'DatePicker',
666
- validation: 'required',
667
- validationMessages: {
668
- required: 'Field is required'
669
- },
670
- labelClass: 'required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500',
671
- innerClass: 't-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500'
672
- }, updates)
673
- };
674
-
675
- const sbsDate = (updates) => {
676
- updates.wrapperClass = 'side-by-side t-items-center';
677
- return date(updates)
678
- };
235
+ });
679
236
 
680
- const atFault = (scope) => sbsYesNoRadio({
237
+ const atFault$1 = (scope) => sbsYesNoRadio({
681
238
  name: scope ? scope + ':' + 'At_Fault' : 'At_Fault',
682
239
  label: 'Were You at Fault?'
683
240
  });
684
241
 
242
+ const atFaultCenter = (scope) => verticalYesNoRadio({
243
+ name: scope ? scope + ':' + 'At_Fault' : 'At_Fault',
244
+ });
245
+
685
246
  const bankruptcyCrossSell = () => sbsCheckbox({
686
247
  label: "I'd also like a consult for bankruptcy or debt elimination (optional)",
687
248
  help: "Note: you will be contacted separately by a bankruptcy/debt expert",
@@ -692,7 +253,22 @@ const bankruptcyCrossSell = () => sbsCheckbox({
692
253
  helpClass: "!t-text-sm"
693
254
  });
694
255
 
695
- const causeOfInjury = (scope) => sbsSelect({
256
+ const bloodContentAlcoholTest = (scope) => sbsSelect({
257
+ name: scope ? scope + ':' + 'Blood_Alcohol_Content_Test' : 'Blood_Alcohol_Content_Test',
258
+ label: 'Blood Alcohol Content Measured by Test:',
259
+ options: [
260
+ "No Test",
261
+ "0.00% - 0.04%",
262
+ "0.05% - 0.08%",
263
+ "0.09% - 0.12%",
264
+ "0.13% - 0.16%",
265
+ "0.17% - 0.20%",
266
+ "More than 0.20%",
267
+ "Don't know"
268
+ ]
269
+ });
270
+
271
+ const causeOfInjury$1 = (scope) => sbsSelect({
696
272
  name: scope ? scope + ':' + 'Cause_Of_Injury' : 'Cause_Of_Injury',
697
273
  label: 'Cause of Injury:',
698
274
  options: [
@@ -704,11 +280,75 @@ const causeOfInjury = (scope) => sbsSelect({
704
280
  ]
705
281
  });
706
282
 
707
- const claimStatus = (scope) => sbsSelect({
708
- name: scope ? scope + ':' + 'Claim_Status' : 'Claim_Status',
709
- label: "Status of Claim:",
283
+ const causeOfInjuryCenter = (scope) => col2RadioCenter({
284
+ name: scope ? scope + ':' + 'Cause_Of_Injury' : 'Cause_Of_Injury',
710
285
  options: [
711
- "No action taken yet",
286
+ "Traumatic Physical Injury (Accident)",
287
+ "Repeated Trauma Injury",
288
+ "Mental Injury",
289
+ "Occupational Disease",
290
+ "Not Sure"
291
+ ]
292
+ });
293
+
294
+ const causeOfDeathCenter = () => col2RadioCenter({
295
+ name: 'Cause_Of_Death',
296
+ options: [
297
+ "Vehicle Accident",
298
+ "Negligent/Careless Act",
299
+ "Reckless Act",
300
+ "Other"
301
+ ]
302
+ });
303
+
304
+ const childHome = (scope) => sbsSelect({
305
+ name: scope ? scope + ':' + 'Child_Home' : 'Child_Home',
306
+ label: 'With Whom Do the Children Currently Live?',
307
+ options: [
308
+ 'Mother',
309
+ 'Father',
310
+ 'Grandparents',
311
+ 'Other'
312
+ ]
313
+ });
314
+
315
+ const childPrimaryCaregiver = (scope) => sbsSelect({
316
+ name: scope ? scope + ':' + 'Child_Primary_Caregiver' : 'Child_Primary_Caregiver',
317
+ label: 'Who is the Primary Caregiver?',
318
+ options: [
319
+ 'Mother',
320
+ 'Father',
321
+ 'Other'
322
+ ]
323
+ });
324
+
325
+ const childRelationship = (scope) => sbsSelect({
326
+ name: scope ? scope + ':' + 'Child_Relationship' : 'Child_Relationship',
327
+ label: 'Your Relationship to Child(ren):',
328
+ options: [
329
+ 'Father',
330
+ 'Mother',
331
+ 'Grandparent',
332
+ 'Aunt/Uncle',
333
+ 'Other'
334
+ ]
335
+ });
336
+
337
+ const claimStatus$1 = (scope) => sbsSelect({
338
+ name: scope ? scope + ':' + 'Claim_Status' : 'Claim_Status',
339
+ label: "Status of Claim:",
340
+ options: [
341
+ "No action taken yet",
342
+ "Demand for compensation made",
343
+ "Lawsuit filed",
344
+ "Other"
345
+ ]
346
+ });
347
+
348
+ const claimStatusCenter = (scope) => col2RadioCenter({
349
+ name: scope ? scope + ':' + 'Claim_Status' : 'Claim_Status',
350
+ options: [
351
+ "No action taken yet",
712
352
  "Demand for compensation made",
713
353
  "Lawsuit filed",
714
354
  "Other"
@@ -723,7 +363,16 @@ const comments = (updates, scope) => textArea(
723
363
  }, updates)
724
364
  );
725
365
 
726
- const degreeOfInterest = (scope, help) => sbsSelect({
366
+ const criminalChargesFiledCenter = () => verticalRadio({
367
+ name: 'Criminal_Charges_Filed',
368
+ options: [
369
+ "Yes",
370
+ "No",
371
+ "Not Sure"
372
+ ]
373
+ });
374
+
375
+ const degreeOfInterest$1 = (scope, help) => sbsSelect({
727
376
  name: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
728
377
  id: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
729
378
  label: 'How Likely Are You to Pay if Your Issue Could be Resolved?',
@@ -736,13 +385,39 @@ const degreeOfInterest = (scope, help) => sbsSelect({
736
385
  ]
737
386
  });
738
387
 
739
- const degreeOfInterestHelp = (scope) => degreeOfInterest(scope, 'No payment necessary to speak with lawyers.');
388
+ const degreeOfInterestCenter = (scope, help) => col2RadioCenter({
389
+ name: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
390
+ id: scope ? scope + ':' + 'Degree_Of_Interest' : 'Degree_Of_Interest',
391
+ help: help,
392
+ options: [
393
+ 'Definitely',
394
+ 'Probably',
395
+ 'Maybe',
396
+ "Absolutely Can't Afford"
397
+ ]
398
+ });
399
+
400
+ const degreeOfInterestHelp = (scope) => degreeOfInterest$1(scope, 'No payment necessary to speak with lawyers.');
401
+
402
+ const disabilityConditionStopWork = (scope) => sbsYesNoRadio({
403
+ name: scope ? scope + ':' + 'Disability_Condition_Stop_Work' : 'Disability_Condition_Stop_Work',
404
+ label: 'Do You Expect To Be Out Of Work For At Least a Year Due To Your Health?'
405
+ });
406
+
407
+ const disabilityWorkHistory = (scope) => sbsYesNoRadio({
408
+ name: scope ? scope + ':' + 'Disability_Work_History' : 'Disability_Work_History',
409
+ label: 'Have You Had a Full-Time Job Within the Past 5 Years?'
410
+ });
740
411
 
741
- const doctorTreatment = (scope) => sbsYesNoRadio({
412
+ const doctorTreatment$1 = (scope) => sbsYesNoRadio({
742
413
  name: scope ? scope + ':' + 'Doctor_Treatment' : 'Doctor_Treatment',
743
414
  label: 'Have You Recently Been Treated by a Doctor, Hospital or Clinic?',
744
415
  });
745
416
 
417
+ const doctorTreatmentCenter = () => verticalYesNoRadio({
418
+ name: 'Doctor_Treatment',
419
+ });
420
+
746
421
  const email = () => sbsText({
747
422
  $formkit: 'email',
748
423
  name: 'Email',
@@ -757,8 +432,7 @@ const email = () => sbsText({
757
432
  }
758
433
  });
759
434
 
760
- const employerType = () => sbsSelect({
761
- label: 'The Employer Is a:',
435
+ const employerTypeCenter = () => col2RadioCenter({
762
436
  name: 'Employer_Type',
763
437
  options: [
764
438
  "Sole proprietorship (mom and pop)",
@@ -771,10 +445,12 @@ const employerType = () => sbsSelect({
771
445
  ]
772
446
  });
773
447
 
774
- const employmentAndWorkplaceTOLPDisplay = (updates) => col2Radio(merge({
448
+ const employeeAtCompanyCenter = (scope) => verticalYesNoRadio({
449
+ name: scope ? scope + ':' + 'Employee_At_Company' : 'Employee_At_Company',
450
+ });
451
+
452
+ const employmentAndWorkplaceTOLPDisplayCenter = (updates) => col2RadioCenter(merge({
775
453
  name: 'Type_Of_Legal_Problem_Display',
776
- if: '$get(Type_Of_Legal_Problem).value == "Employment and Workplace"',
777
- label: 'Select The Workplace Issue:',
778
454
  options: [
779
455
  'Workplace Harassment',
780
456
  'Workplace Discrimination',
@@ -787,6 +463,19 @@ const employmentAndWorkplaceTOLPDisplay = (updates) => col2Radio(merge({
787
463
  ]
788
464
  }, updates));
789
465
 
466
+ const estateLegalServicesNeeded = (scope) => sbsSelect({
467
+ name: scope ? scope + ':' + 'Estate_Legal_Services_Needed' : 'Estate_Legal_Services_Needed',
468
+ label: "Legal Services Needed for Your Estate:",
469
+ options: [
470
+ "Charitable Giving",
471
+ "Contested Wills",
472
+ "Drafting Wills or Trust",
473
+ "Estate Administration",
474
+ "Asset Protection",
475
+ "Other"
476
+ ]
477
+ });
478
+
790
479
  const firstName = () => sbsText({
791
480
  $formkit: 'text',
792
481
  label: 'First Name:',
@@ -798,16 +487,29 @@ const firstName = () => sbsText({
798
487
  }
799
488
  });
800
489
 
801
- const haveAttorney = (scope) => sbsYesNoRadio({
490
+ const haveAttorney$1 = (scope) => sbsYesNoRadio({
802
491
  name: scope ? scope + ':' + 'Have_Attorney' : 'Have_Attorney',
803
492
  label: 'Already Working with An Attorney?'
804
493
  });
805
494
 
806
- const incidentDate = (scope) => sbsDate({
495
+ const haveAttorneyCenter = () => verticalYesNoRadio({
496
+ name: 'Have_Attorney',
497
+ });
498
+
499
+ const haveChildren = (scope) => sbsYesNoRadio({
500
+ name: scope ? scope + ':' + 'Have_Children' : 'Have_Children',
501
+ label: 'Do You Have Children?'
502
+ });
503
+
504
+ const incidentDate$1 = (scope) => sbsDate({
807
505
  name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
808
506
  label: 'Date of Incident:',
809
507
  });
810
508
 
509
+ const incidentDateCenter = (scope) => verticalDate({
510
+ name: scope ? scope + ':' + 'Incident_Date' : 'Incident_Date',
511
+ });
512
+
811
513
  const lastName = () => sbsText({
812
514
  $formkit: 'text',
813
515
  label: 'Last Name:',
@@ -819,9 +521,105 @@ const lastName = () => sbsText({
819
521
  }
820
522
  });
821
523
 
524
+ const lawyerPaymentMethod = (scope) => sbsSelect({
525
+ name: scope ? scope + ':' + 'Lawyer_Payment_Method' : 'Lawyer_Payment_Method',
526
+ label: 'How Will You Pay for Legal Fees if You Hire a Lawyer?',
527
+ help: 'No payment necessary to speak with lawyers.',
528
+ options: [
529
+ 'Cash',
530
+ 'Check',
531
+ 'Credit Card',
532
+ 'Friend',
533
+ 'Family',
534
+ 'Other'
535
+ ]
536
+ });
537
+
538
+ const legalCrossSells$1 = () => col2Checkbox({
539
+ id: 'Legal_CrossSells',
540
+ name: 'Legal_CrossSells',
541
+ help: 'Just hit "Next" if none apply',
542
+ helpClass: 't-text-center !t-text-sm',
543
+ validation: null,
544
+ options: {
545
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Auto and Car Accidents"',
546
+ then: {
547
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
548
+ 'Wills and Trusts': 'Need a Will or Trust',
549
+ 'Workers Compensation': 'Workplace Injury',
550
+ 'Power of Attorney': 'Update Power of Attorney',
551
+ 'Divorce and Separation': 'Need a Divorce or Separation',
552
+ 'Child Custody': 'Need help with Child Custody',
553
+ },
554
+ else: {
555
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Personal Injury" || $getVal($get(form), "Type_Of_Legal_Problem") === "Workers Compensation"',
556
+ then: {
557
+ 'DUI and DWI': 'Involved in a DUI/DWI',
558
+ 'Wills and Trusts': 'Need a Will or Trust',
559
+ 'Power of Attorney': 'Update Power of Attorney',
560
+ 'Divorce and Separation': 'Need a Divorce or Separation',
561
+ 'Child Custody': 'Need help with Child Custody',
562
+ // TODO add one more?
563
+ },
564
+ else: {
565
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "DUI and DWI"',
566
+ then: {
567
+ 'Personal Injury': 'Personal or Workplace Injury',
568
+ 'Wills and Trusts': 'Need a Will or Trust',
569
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
570
+ 'Power of Attorney': 'Update Power of Attorney',
571
+ 'Divorce and Separation': 'Need a Divorce or Separation',
572
+ 'Child Custody': 'Need help with Child Custody',
573
+ },
574
+ else: {
575
+ 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"',
576
+ then: {
577
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
578
+ 'Personal Injury': 'Personal or Workplace Injury',
579
+ 'DUI and DWI': 'Involved in a DUI/DWI',
580
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
581
+ 'Divorce and Separation': 'Need a Divorce or Separation',
582
+ 'Child Custody': 'Need help with Child Custody',
583
+ },
584
+ else: {
585
+ if: '$getVal($get(form), "Type_Of_Legal_Problem") === "Long Term Disability" || $getVal($get(form), "Type_Of_Legal_Problem") === "Social Security Disability and Insurance"',
586
+ then: {
587
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
588
+ 'DUI and DWI': 'Involved in a DUI/DWI',
589
+ 'Wills and Trusts': 'Need a Will or Trust',
590
+ 'Power of Attorney': 'Update Power of Attorney',
591
+ 'Divorce and Separation': 'Need a Divorce or Separation',
592
+ 'Child Custody': 'Need help with Child Custody',
593
+ },
594
+ else: {
595
+ 'Auto and Car Accidents': 'Injured in a Car Accident',
596
+ 'Personal Injury': 'Personal or Workplace Injury',
597
+ 'DUI and DWI': 'Involved in a DUI/DWI',
598
+ 'Wills and Trusts': 'Need a Will or Trust',
599
+ 'Power of Attorney': 'Update Power of Attorney',
600
+ 'Social Security Disability and Insurance': 'Interest in Disability Benefits',
601
+ }
602
+ }
603
+ }
604
+ }
605
+ }
606
+ }
607
+ });
608
+
609
+ const maritalStatus = (scope) => sbsSelect({
610
+ name: scope ? scope + ':' + 'Marital_Status' : 'Marital_Status',
611
+ label: 'Marital Status:',
612
+ options: [
613
+ 'Unmarried, Living Together',
614
+ 'Unmarried, Do Not Live Together',
615
+ 'Married, Living Together',
616
+ 'Separated',
617
+ 'Divorced',
618
+ 'Other'
619
+ ]
620
+ });
822
621
 
823
- const numEmployeesOfBusiness = () => sbsSelect({
824
- label: 'Total Employees of Business? (estimated)',
622
+ const numEmployeesOfBusinessCenter = () => col2RadioCenter({
825
623
  name: 'Num_Employees_Of_Business',
826
624
  options: [
827
625
  "1-5",
@@ -834,6 +632,11 @@ const numEmployeesOfBusiness = () => sbsSelect({
834
632
  ]
835
633
  });
836
634
 
635
+ const pendingCharges = (scope) => sbsYesNoRadio({
636
+ name: scope ? scope + ':' + 'Pending_Charges' : 'Pending_Charges',
637
+ label: 'Do you currently have any pending charges?'
638
+ });
639
+
837
640
  const phone = () => sbsText({
838
641
  $formkit: 'tel',
839
642
  name: 'Primary_Phone',
@@ -852,7 +655,7 @@ const phone = () => sbsText({
852
655
  helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]"
853
656
  });
854
657
 
855
- const primaryInjury = (scope) => sbs2ColRadio({
658
+ const primaryInjury$1 = (scope) => sbs2ColRadio({
856
659
  name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
857
660
  label: 'Primary Injury:',
858
661
  options: [
@@ -863,10 +666,61 @@ const primaryInjury = (scope) => sbs2ColRadio({
863
666
  "Headaches",
864
667
  "Memory Loss",
865
668
  "Loss of Limb",
866
- "Other (describe on next page)"
669
+ "Not Sure or Other"
670
+ ]
671
+ });
672
+
673
+ const primaryInjuryCenter = (scope) => col2RadioCenter({
674
+ name: scope ? scope + ':' + 'Primary_Injury' : 'Primary_Injury',
675
+ options: [
676
+ "Anxiety",
677
+ "Back or Neck Pain",
678
+ "Broken Bones",
679
+ "Cuts and Bruises",
680
+ "Headaches",
681
+ "Memory Loss",
682
+ "Loss of Limb",
683
+ "Not Sure or Other"
684
+ ]
685
+ });
686
+
687
+ const priorAlcoholOffenses = (scope) => sbsYesNoRadio({
688
+ name: scope ? scope + ':' + 'Prior_Alcohol_Offenses' : 'Prior_Alcohol_Offenses',
689
+ label: 'Any Prior Alcohol Related Offenses?'
690
+ });
691
+
692
+ const policeReportFiled = (scope) => sbsYesNoRadio({
693
+ name: scope ? scope + ':' + 'Police_Report_Filed' : 'Police_Report_Filed',
694
+ label: 'Was a Police Report Filed?'
695
+ });
696
+
697
+ const relationshipToVictimCenter = () => col2RadioCenter({
698
+ name: 'Relationship_To_Victim',
699
+ options: [
700
+ "Parent",
701
+ "Spouse",
702
+ "Sibling",
703
+ "Friend",
704
+ "Other"
705
+ ]
706
+ });
707
+
708
+ const roleInMatterProbate = (scope) => sbsSelect({
709
+ name: scope ? scope + ':' + 'Role_In_Matter_Probate' : 'Role_In_Matter_Probate',
710
+ label: "What Is Your Role in this Matter?",
711
+ options: [
712
+ "Preparing My Will",
713
+ "Executor",
714
+ "Heir",
715
+ "Other"
867
716
  ]
868
717
  });
869
718
 
719
+ const socialSecurityDisabilityReceivingBenefits = (scope) => sbsYesNoRadio({
720
+ name: scope ? scope + ':' + 'Social_Security_Disability_Receiving_Benefits' : 'Social_Security_Disability_Receiving_Benefits',
721
+ label: 'Are You Currently Receiving Social Security Disability Benefits?'
722
+ });
723
+
870
724
  const TCPAConsent = () => ({
871
725
  $formkit: 'checkbox',
872
726
  label: '$meta.tcpaLanguage',
@@ -882,9 +736,49 @@ const TCPAConsent = () => ({
882
736
  }
883
737
  });
884
738
 
885
- const zipcode = () => sbsText({
886
- label: 'Zip Code:',
739
+ const typeOfAlcoholTest = (scope) => sbsSelect({
740
+ name: scope ? scope + ':' + 'Type_Of_Alcohol_Test' : 'Type_Of_Alcohol_Test',
741
+ label: 'Type of Alcohol Test Performed?',
742
+ options: [
743
+ "No Test",
744
+ "Refused Test",
745
+ "Breath Test",
746
+ "Blood Test",
747
+ "Urine Test",
748
+ "Don't Know"
749
+ ]
750
+ });
751
+
752
+ const typeOfAssets = (scope) => col2Checkbox({
753
+ name: scope ? scope + ':' + 'Type_Of_Assets' : 'Type_Of_Assets',
754
+ label: 'Type of Assets:',
755
+ options: [
756
+ "Business Interests",
757
+ "Cash",
758
+ "Life Insurance Policies",
759
+ "Pensions/Retirement",
760
+ "Personal Possessions",
761
+ "Property",
762
+ "Stock/Bonds"
763
+ ]
764
+ });
765
+
766
+ const valueOfAssets = (scope) => sbsSelect({
767
+ name: scope ? scope + ':' + 'Value_Of_Assets' : 'Value_Of_Assets',
768
+ label: 'Value of Your Assets?',
769
+ options: [
770
+ "Less than 50K",
771
+ "50K to 100K",
772
+ "100K to 250K",
773
+ "250K to 500K",
774
+ "500K to 1M",
775
+ "More than 1M"
776
+ ]
777
+ });
778
+
779
+ const zipcodeCenter = () => text({
887
780
  placeholder: '#####',
781
+ help: "We try to match you with local legal help",
888
782
  name: 'Zip',
889
783
  maxlength: 5,
890
784
  inputmode: "numeric",
@@ -893,7 +787,11 @@ const zipcode = () => sbsText({
893
787
  validationMessages: {
894
788
  required: 'Zip Code is required',
895
789
  matches: 'Invalid Zip Code'
896
- }
790
+ },
791
+ wrapperClass: 't-flex t-justify-center',
792
+ messagesClass: 't-flex t-justify-center',
793
+ inputClass: 't-text-center',
794
+ helpClass: 't-mt-2.5 !t-text-sm t-text-center'
897
795
  });
898
796
 
899
797
 
@@ -912,37 +810,63 @@ const group = (name, updates) => {
912
810
  }, updates)
913
811
  };
914
812
 
915
- const defaultQuestions = () => [
916
- haveAttorney(),
917
- degreeOfInterestHelp()
918
- ];
813
+ const AutoAndCarAccidentsQuestions = (condition, scope) => group(
814
+ 'AutoAndCarAccidentsQuestions',
815
+ {
816
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Auto and Car Accidents"'),
817
+ children: [
818
+ haveAttorney$1(scope),
819
+ incidentDate$1(scope),
820
+ atFault$1(scope),
821
+ primaryInjury$1(scope),
822
+ doctorTreatment$1(scope),
823
+ policeReportFiled(scope)
824
+ ]
825
+ }
826
+ );
919
827
 
920
- const EmploymentAndWorkplaceQuestions = () => group(
921
- 'EmploymentAndWorkplaceQuestions',
828
+ const ChildCustodyQuestions = (condition, scope) => group(
829
+ 'ChildCustodyQuestions',
922
830
  {
923
- if: '$get(Type_Of_Legal_Problem).value == "Employment and Workplace"',
831
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Child Custody"'),
924
832
  children: [
925
- haveAttorney(),
926
- numEmployeesOfBusiness(),
927
- employerType(),
928
- degreeOfInterestHelp()
833
+ haveAttorney$1(scope),
834
+ childRelationship(scope),
835
+ childHome(scope),
836
+ childPrimaryCaregiver(scope),
837
+ degreeOfInterest$1(scope),
838
+ lawyerPaymentMethod(scope)
929
839
  ]
930
840
  }
931
841
  );
932
842
 
933
- const WorkplaceHarassmentQuestions = () => group(
934
- 'WorkplaceHarassmentQuestions',
843
+ const DivorceQuestions = (condition, scope) => group(
844
+ 'DivorceQuestions',
935
845
  {
936
- if: '$get(Type_Of_Legal_Problem).value == "Workplace Harassment"',
937
- children: defaultQuestions()
846
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Divorce and Separation"'),
847
+ children: [
848
+ haveAttorney$1(scope),
849
+ maritalStatus(scope),
850
+ haveChildren(scope),
851
+ degreeOfInterest$1(scope),
852
+ lawyerPaymentMethod(scope)
853
+ ]
938
854
  }
939
855
  );
940
856
 
941
- const WorkplaceDiscriminationQuestions = () => group(
942
- 'WorkplaceDiscriminationQuestions',
857
+ const DUIAndDWIQuestions = (condition, scope) => group(
858
+ 'DUIAndDWIQuestions',
943
859
  {
944
- if: '$get(Type_Of_Legal_Problem).value == "Workplace Discrimination"',
945
- children: defaultQuestions()
860
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "DUI and DWI"'),
861
+ children: [
862
+ haveAttorney$1(scope),
863
+ incidentDate$1(scope),
864
+ priorAlcoholOffenses(scope),
865
+ typeOfAlcoholTest(scope),
866
+ bloodContentAlcoholTest(scope),
867
+ pendingCharges(scope),
868
+ degreeOfInterestHelp(scope)
869
+ ]
946
870
  }
947
871
  );
948
872
 
@@ -951,63 +875,68 @@ const PersonalInjuryQuestions = (condition, scope) => group(
951
875
  {
952
876
  if: (condition || '$get(Type_Of_Legal_Problem).value == "Personal Injury"'),
953
877
  children: [
954
- haveAttorney(scope),
955
- incidentDate(scope),
956
- claimStatus(scope),
957
- atFault(scope),
958
- primaryInjury(scope),
959
- doctorTreatment(scope)
878
+ haveAttorney$1(scope),
879
+ incidentDate$1(scope),
880
+ claimStatus$1(scope),
881
+ atFault$1(scope),
882
+ primaryInjury$1(scope),
883
+ doctorTreatment$1(scope)
960
884
  ]
961
885
  }
962
886
  );
963
887
 
964
- const UnemploymentQuestions = () => group(
965
- 'UnemploymentQuestions',
888
+ const PowerofAttorneyQuestions = (condition, scope) => group(
889
+ 'PowerofAttorneyQuestions',
966
890
  {
967
- if: '$get(Type_Of_Legal_Problem).value == "Unemployment"',
891
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Power of Attorney"'),
968
892
  children: [
969
- numEmployeesOfBusiness(),
970
- employerType(),
971
- degreeOfInterestHelp()
893
+ haveAttorney$1(scope),
894
+ degreeOfInterestHelp(scope)
972
895
  ]
973
896
  }
974
897
  );
975
898
 
976
- const WorkersCompensationQuestions = (condition, scope) => group(
977
- 'WorkersCompensationQuestions',
899
+ const SocialSecurityDisabilityAndInsuranceQuestions = (condition, scope) => group(
900
+ 'SocialSecurityDisabilityAndInsuranceQuestions',
978
901
  {
979
- if: (condition || '$get(Type_Of_Legal_Problem).value == "Workers Compensation"'),
902
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Social Security Disability and Insurance"'),
980
903
  children: [
981
- haveAttorney(scope),
982
- incidentDate(scope),
983
- claimStatus(scope),
984
- primaryInjury(scope),
985
- causeOfInjury(scope),
986
- doctorTreatment(scope)
904
+ haveAttorney$1(scope),
905
+ applicantAge(scope),
906
+ disabilityConditionStopWork(scope),
907
+ disabilityWorkHistory(scope),
908
+ socialSecurityDisabilityReceivingBenefits(scope),
909
+ doctorTreatment$1(scope)
987
910
  ]
988
911
  }
989
912
  );
990
913
 
991
- const WrongfulTerminationQuestions = () => group(
992
- 'WrongfulTerminationQuestions',
914
+ const WillsAndTrustsQuestions = (condition, scope) => group(
915
+ 'WillsAndTrustsQuestions',
993
916
  {
994
- if: '$get(Type_Of_Legal_Problem).value == "Wrongful Termination"',
917
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Wills and Trusts"'),
995
918
  children: [
996
- haveAttorney(),
997
- numEmployeesOfBusiness(),
998
- employerType(),
999
- degreeOfInterestHelp()
919
+ haveAttorney$1(scope),
920
+ valueOfAssets(scope),
921
+ typeOfAssets(scope),
922
+ roleInMatterProbate(scope),
923
+ estateLegalServicesNeeded(scope),
924
+ degreeOfInterestHelp(scope)
1000
925
  ]
1001
926
  }
1002
927
  );
1003
928
 
1004
- const NotSureOrOtherQuestions = () => group(
1005
- 'NotSureOrOtherQuestions',
929
+ const WorkersCompensationQuestions = (condition, scope) => group(
930
+ 'WorkersCompensationQuestions',
1006
931
  {
1007
- if: '$get(Type_Of_Legal_Problem).value == "Not Sure or Other"',
932
+ if: (condition || '$get(Type_Of_Legal_Problem).value == "Workers Compensation"'),
1008
933
  children: [
1009
- haveAttorney(),
1010
- degreeOfInterestHelp()
934
+ haveAttorney$1(scope),
935
+ incidentDate$1(scope),
936
+ claimStatus$1(scope),
937
+ primaryInjury$1(scope),
938
+ causeOfInjury$1(scope),
939
+ doctorTreatment$1(scope)
1011
940
  ]
1012
941
  }
1013
942
  );
@@ -1037,7 +966,44 @@ const findLastInput = (n) => {
1037
966
  return null
1038
967
  };
1039
968
 
1040
- function questionsStepHeadline(updates) {
969
+ const secureIconDefault = {
970
+ $el: 'div',
971
+ if: '$activeStep === $lastStep()',
972
+ attrs: {
973
+ class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
974
+ },
975
+ children: [
976
+ {
977
+ $el: 'img',
978
+ attrs: {
979
+ loading: 'lazy',
980
+ alt: '',
981
+ style: {
982
+ border: 0
983
+ },
984
+ width: '25',
985
+ height: '25',
986
+ src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
987
+ }
988
+ },
989
+ {
990
+ $el: 'span',
991
+ children: 'Secure & Encrypted',
992
+ attrs: {
993
+ class: 't-pl-2 t-pt-1 t-font-medium'
994
+ }
995
+ }
996
+ ]
997
+ };
998
+
999
+ function secureIcon(updates) {
1000
+ return merge(
1001
+ secureIconDefault,
1002
+ updates
1003
+ )
1004
+ }
1005
+
1006
+ function crossSellQuestionsStepHeadline(updates) {
1041
1007
  return {
1042
1008
  $el: 'h3',
1043
1009
  children: updates.headline || 'Tell Us About Your Situation',
@@ -1047,6 +1013,36 @@ function questionsStepHeadline(updates) {
1047
1013
  }
1048
1014
  }
1049
1015
 
1016
+ function crossSellQuestionsStepSubHeadline(updates) {
1017
+ return {
1018
+ $el: 'h5',
1019
+ children: updates.subheadline || 'Tell us about your situation:',
1020
+ attrs: {
1021
+ 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'
1022
+ }
1023
+ }
1024
+ }
1025
+
1026
+ function verticalStepHeadline(updates) {
1027
+ return {
1028
+ $el: 'h3',
1029
+ children: updates.headline || 'Tell Us About Your Situation',
1030
+ attrs: {
1031
+ class: 't-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-dark t-pb-5 t-pt-0 t-px-1' + ' ' + (updates.headlineClass || '')
1032
+ }
1033
+ }
1034
+ }
1035
+
1036
+ function verticalStepSubHeadline(updates) {
1037
+ return {
1038
+ $el: 'h5',
1039
+ children: updates.subheadline || '',
1040
+ attrs: {
1041
+ class: 't-flex t-justify-center t-text-center !t-text-lg t-font-normal t-text-dark t-pb-5 t-pt-0 t-px-1' + ' ' + (updates.subheadlineClass || '')
1042
+ }
1043
+ }
1044
+ }
1045
+
1050
1046
  function commentsStepHeadline(updates) {
1051
1047
  return {
1052
1048
  $el: 'h3',
@@ -1067,6 +1063,16 @@ function firstAndLastStepHeadline(updates) {
1067
1063
  }
1068
1064
  }
1069
1065
 
1066
+ function legalCrossSellsStepHeadline(updates) {
1067
+ return {
1068
+ $el: 'h3',
1069
+ children: updates.headline || 'Do any of the following situations apply?',
1070
+ attrs: {
1071
+ 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 || '')
1072
+ }
1073
+ }
1074
+ }
1075
+
1070
1076
  function contactStepHeadline(updates) {
1071
1077
  return {
1072
1078
  $el: 'h3',
@@ -1103,244 +1109,1481 @@ const TRUSTED_FORM_JS = `(function() {
1103
1109
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);
1104
1110
  })();`;
1105
1111
 
1106
- function trustedFormScript() {
1107
- return {
1108
- $el: 'script',
1109
- if: '$activeStep === $lastStep()',
1110
- children: TRUSTED_FORM_JS
1111
- }
1112
- }
1112
+ function trustedFormScript() {
1113
+ return {
1114
+ $el: 'script',
1115
+ if: '$activeStep === $lastStep()',
1116
+ children: TRUSTED_FORM_JS
1117
+ }
1118
+ }
1119
+
1120
+ const stepDefaults = (step, stepKey) => ({
1121
+ $el: 'section',
1122
+ if: '$stepEnabled("' + step + '")',
1123
+ attrs: {
1124
+ hidden: '$activeStep !== "' + step + '"',
1125
+ key: stepKey ? stepKey : step
1126
+ }
1127
+ });
1128
+
1129
+ function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
1130
+ if (typeof nextOnEnter === 'undefined') {
1131
+ nextOnEnter = true;
1132
+ }
1133
+ if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
1134
+ const lastInput = findLastInput(inputs[inputs.length - 1]);
1135
+ if (lastInput && nextOnEnter === true) {
1136
+ lastInput.onKeypress = NEXT_ON_ENTER;
1137
+ }
1138
+ if (lastInput && nextOnInput === true) {
1139
+ lastInput.onInput = NEXT_ON_INPUT;
1140
+ }
1141
+ }
1142
+
1143
+ return merge(
1144
+ stepDefaults(name, stepKey),
1145
+ {
1146
+ children: [
1147
+ {
1148
+ $formkit: 'group',
1149
+ id: name,
1150
+ name: name,
1151
+ nextStepMap: nextStepMap,
1152
+ autoFocus: autoFocus,
1153
+ children: inputs
1154
+ }
1155
+ ]
1156
+ }
1157
+ )
1158
+ }
1159
+
1160
+ // Single question step
1161
+ function sqstep(name, input, defaultHeadline, updates = {}) {
1162
+ return step(
1163
+ name,
1164
+ [
1165
+ verticalStepHeadline({ headline: updates.headline ?? defaultHeadline, headlineClass: updates.headlineClass }),
1166
+ ...Array.isArray(input) ? input : [input],
1167
+ ],
1168
+ updates.nextOnEnter,
1169
+ typeof updates.nextOnInput === 'undefined' ? true : updates.nextOnInput,
1170
+ updates.stepKey,
1171
+ updates.nextStepMap
1172
+ )
1173
+ }
1174
+
1175
+ function commentsWithBankruptcy(updates = {}) {
1176
+ return step(
1177
+ 'commentsWithBankruptcy',
1178
+ [
1179
+ commentsStepHeadline(updates),
1180
+ comments({
1181
+ label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1182
+ placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1183
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1184
+ }),
1185
+ bankruptcyCrossSell(),
1186
+ {
1187
+ $el: 'div',
1188
+ if: '$get(CrossSell_Bankruptcy).value == true',
1189
+ children: [
1190
+ comments({
1191
+ label: 'Bankruptcy or debt details:',
1192
+ placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1193
+ inputClass: '!t-h-16'
1194
+ }, 'CrossSell:Bankruptcy')
1195
+ ],
1196
+ }
1197
+ ],
1198
+ false // nextOnEnter
1199
+ )
1200
+ }
1201
+
1202
+ function contactInfo(updates = {}) {
1203
+ return step(
1204
+ 'contactInfo',
1205
+ [
1206
+ contactStepHeadline(updates),
1207
+ contactStepSubHeadline(updates),
1208
+ trustedFormScript(),
1209
+ email(),
1210
+ phone(),
1211
+ TCPAConsent(),
1212
+ secureIcon()
1213
+ ],
1214
+ false, // nextOnEnter
1215
+ )
1216
+ }
1217
+
1218
+ function firstAndLastV3(updates = {}) {
1219
+ return step(
1220
+ 'firstAndLast',
1221
+ [
1222
+ firstAndLastStepHeadline({
1223
+ headline: updates.headline ?? 'Who is looking for help?',
1224
+ headlineClass: updates.headlineClass
1225
+ }),
1226
+ verticalStepSubHeadline({
1227
+ subheadline: updates.subheadline ?? 'Note: we never share info without consent',
1228
+ subheadlineClass: '!t-text-sm !t-text-gray-500'
1229
+ }),
1230
+ firstName(),
1231
+ lastName()
1232
+ ],
1233
+ updates.nextOnEnter
1234
+ )
1235
+ }
1236
+
1237
+
1238
+ function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1239
+ return step(
1240
+ 'autoAndCarAccidentCrossSellQuestions',
1241
+ [
1242
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Compensation' }),
1243
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your accident:' }),
1244
+ AutoAndCarAccidentsQuestions("true", 'CrossSell:Auto_and_Car_Accidents'),
1245
+ comments(
1246
+ {
1247
+ label: 'Accident Description:',
1248
+ placeholder: 'Please describe your accident in a few words...',
1249
+ inputClass: '!t-h-16'
1250
+ },
1251
+ 'CrossSell:Auto_and_Car_Accidents'
1252
+ )
1253
+ ],
1254
+ updates.nextOnEnter
1255
+ )
1256
+ }
1257
+
1258
+ function childCustodyCrossSellQuestions(updates = {}) {
1259
+ return step(
1260
+ 'childCustodyCrossSellQuestions',
1261
+ [
1262
+ crossSellQuestionsStepHeadline({ headline: 'Child Custody Information' }),
1263
+ ChildCustodyQuestions("true", 'CrossSell:Child_Custody'),
1264
+ comments(
1265
+ {
1266
+ label: 'Description:',
1267
+ placeholder: 'Please describe your situation in a few words...',
1268
+ inputClass: '!t-h-16'
1269
+ },
1270
+ 'CrossSell:Child_Custody'
1271
+ )
1272
+ ],
1273
+ updates.nextOnEnter
1274
+ )
1275
+ }
1276
+
1277
+ function divorceAndSeparationCrossSellQuestions(updates = {}) {
1278
+ return step(
1279
+ 'divorceAndSeparationCrossSellQuestions',
1280
+ [
1281
+ crossSellQuestionsStepHeadline({ headline: 'Divorce or Separation Information' }),
1282
+ DivorceQuestions("true", 'CrossSell:Divorce_and_Separation'),
1283
+ comments(
1284
+ {
1285
+ label: 'Description:',
1286
+ placeholder: 'Please describe your situation in a few words...',
1287
+ inputClass: '!t-h-16'
1288
+ },
1289
+ 'CrossSell:Divorce_and_Separation'
1290
+ )
1291
+ ],
1292
+ updates.nextOnEnter
1293
+ )
1294
+ }
1295
+
1296
+ function duiAndDWICrossSellQuestions(updates = {}) {
1297
+ return step(
1298
+ 'duiAndDWICrossSellQuestions',
1299
+ [
1300
+ crossSellQuestionsStepHeadline({ headline: 'About Your DUI/DWI' }),
1301
+ DUIAndDWIQuestions("true", 'CrossSell:DUI_and_DWI'),
1302
+ comments(
1303
+ {
1304
+ label: 'Incident Description:',
1305
+ placeholder: 'Please describe your incident in a few words...',
1306
+ inputClass: '!t-h-16'
1307
+ },
1308
+ 'CrossSell:DUI_and_DWI'
1309
+ )
1310
+ ],
1311
+ updates.nextOnEnter
1312
+ )
1313
+ }
1314
+
1315
+ function ssdiCrossSellQuestions(updates = {}) {
1316
+ return step(
1317
+ 'ssdiCrossSellQuestions',
1318
+ [
1319
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Benefits' }),
1320
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your disability:' }),
1321
+ SocialSecurityDisabilityAndInsuranceQuestions("true", 'CrossSell:Social_Security_Disability_and_Insurance'),
1322
+ comments(
1323
+ {
1324
+ label: 'Description:',
1325
+ placeholder: 'Please describe your situation in a few words...',
1326
+ inputClass: '!t-h-16'
1327
+ },
1328
+ 'CrossSell:Social_Security_Disability_and_Insurance'
1329
+ )
1330
+ ],
1331
+ updates.nextOnEnter
1332
+ )
1333
+ }
1334
+
1335
+ function personalInjuryCrossSellQuestions(updates = {}) {
1336
+ return step(
1337
+ 'personalInjuryCrossSellQuestions',
1338
+ [
1339
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Compensation' }),
1340
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your injury:' }),
1341
+ PersonalInjuryQuestions("true", 'CrossSell:Personal_Injury'),
1342
+ comments(
1343
+ {
1344
+ label: 'Injury Description:',
1345
+ placeholder: 'Please describe your injury in a few words...',
1346
+ inputClass: '!t-h-16'
1347
+ },
1348
+ 'CrossSell:Personal_Injury'
1349
+ )
1350
+ ],
1351
+ updates.nextOnEnter
1352
+ )
1353
+ }
1354
+
1355
+ function powerOfAttorneyCrossSellQuestions(updates = {}) {
1356
+ return step(
1357
+ 'powerOfAttorneyCrossSellQuestions',
1358
+ [
1359
+ crossSellQuestionsStepHeadline({ headline: 'Power of Attorney Information' }),
1360
+ PowerofAttorneyQuestions("true", 'CrossSell:Power_of_Attorney'),
1361
+ comments(
1362
+ {
1363
+ label: 'Description:',
1364
+ placeholder: 'Please describe your situation in a few words...',
1365
+ inputClass: '!t-h-16'
1366
+ },
1367
+ 'CrossSell:Power_of_Attorney'
1368
+ )
1369
+ ],
1370
+ updates.nextOnEnter
1371
+ )
1372
+ }
1373
+
1374
+ function willsAndTrustsCrossSellQuestions(updates = {}) {
1375
+ return step(
1376
+ 'willsAndTrustsCrossSellQuestions',
1377
+ [
1378
+ crossSellQuestionsStepHeadline({ headline: 'Will or Trust Information' }),
1379
+ WillsAndTrustsQuestions("true", 'CrossSell:Wills_and_Trusts'),
1380
+ comments(
1381
+ {
1382
+ label: 'Description:',
1383
+ placeholder: 'Please describe your situation in a few words...',
1384
+ inputClass: '!t-h-16'
1385
+ },
1386
+ 'CrossSell:Wills_and_Trusts'
1387
+ )
1388
+ ],
1389
+ updates.nextOnEnter
1390
+ )
1391
+ }
1392
+
1393
+ function workersCompensationCrossSellQuestions(updates = {}) {
1394
+ return step(
1395
+ 'workersCompensationCrossSellQuestions',
1396
+ [
1397
+ crossSellQuestionsStepHeadline({ headline: 'You May Be Entitled To Benefits' }),
1398
+ crossSellQuestionsStepSubHeadline({ subheadline: 'Tell us about your injury:' }),
1399
+ WorkersCompensationQuestions("true", 'CrossSell:Workers_Compensation'),
1400
+ comments(
1401
+ {
1402
+ label: 'Injury Description:',
1403
+ placeholder: 'Please describe your injury in a few words...',
1404
+ inputClass: '!t-h-16'
1405
+ },
1406
+ 'CrossSell:Workers_Compensation'
1407
+ )
1408
+ ],
1409
+ updates.nextOnEnter
1410
+ )
1411
+ }
1412
+
1413
+ function employmentAndWorkplaceTOLP(updates = {}) {
1414
+ return step(
1415
+ 'employmentAndWorkplaceTOLP',
1416
+ [
1417
+ {
1418
+ $formkit: 'hidden',
1419
+ name: "Type_Of_Legal_Problem",
1420
+ id: "Type_Of_Legal_Problem",
1421
+ value: "Employment and Workplace"
1422
+ },
1423
+ employmentAndWorkplaceTOLPDisplayCenter(),
1424
+ ],
1425
+ updates.nextOnEnter,
1426
+ updates.nextOnInput,
1427
+ updates.stepKey,
1428
+ updates.nextStepMap
1429
+ )
1430
+ }
1431
+
1432
+ function legalCrossSells(updates = {}) {
1433
+ return step(
1434
+ 'legalCrossSells',
1435
+ [
1436
+ legalCrossSellsStepHeadline(updates),
1437
+ legalCrossSells$1(),
1438
+ ],
1439
+ updates.nextOnEnter,
1440
+ false,
1441
+ // Note: we should probably scope this stepKey to this step name
1442
+ '$get(Type_Of_Legal_Problem).value'
1443
+ )
1444
+ }
1445
+
1446
+ function zipcode(updates = {}) {
1447
+ return sqstep(
1448
+ 'zipcode',
1449
+ zipcodeCenter(),
1450
+ 'Please verify your Zip Code',
1451
+ updates
1452
+ )
1453
+ }
1454
+
1455
+ function haveAttorney(updates = {}) {
1456
+ return sqstep(
1457
+ 'haveAttorney',
1458
+ haveAttorneyCenter(),
1459
+ 'Already working with an attorney?',
1460
+ updates
1461
+ )
1462
+ }
1463
+
1464
+ function degreeOfInterest(updates = {}) {
1465
+ return sqstep(
1466
+ 'degreeOfInterest',
1467
+ degreeOfInterestCenter(),
1468
+ 'Could you pay if your issue could be resolved?',
1469
+ updates
1470
+ )
1471
+ }
1472
+
1473
+ function incidentDate(updates = {}) {
1474
+ return sqstep(
1475
+ 'incidentDate',
1476
+ incidentDateCenter(),
1477
+ 'When did the incident occur?',
1478
+ updates
1479
+ )
1480
+ }
1481
+
1482
+ function doctorTreatment(updates = {}) {
1483
+ return sqstep(
1484
+ 'doctorTreatment',
1485
+ doctorTreatmentCenter(),
1486
+ 'Have you seen a doctor about this?',
1487
+ updates
1488
+ )
1489
+ }
1490
+
1491
+ function atFault(updates = {}) {
1492
+ return sqstep(
1493
+ 'atFault',
1494
+ atFaultCenter(),
1495
+ 'Were you at fault?',
1496
+ updates
1497
+ )
1498
+ }
1499
+
1500
+ function primaryInjury(updates = {}) {
1501
+ return sqstep(
1502
+ 'primaryInjury',
1503
+ primaryInjuryCenter(),
1504
+ 'What was the primary injury?',
1505
+ updates
1506
+ )
1507
+ }
1508
+
1509
+ function employerType(updates = {}) {
1510
+ return sqstep(
1511
+ 'employerType',
1512
+ employerTypeCenter(),
1513
+ 'What type of employer is it?',
1514
+ updates
1515
+ )
1516
+ }
1517
+
1518
+ function employeeAtCompany(updates = {}) {
1519
+ return sqstep(
1520
+ 'employeeAtCompany',
1521
+ employeeAtCompanyCenter(),
1522
+ 'Do you/they still work at the company?',
1523
+ updates
1524
+ )
1525
+ }
1526
+
1527
+ function numEmployeesOfBusiness(updates = {}) {
1528
+ return sqstep(
1529
+ 'numEmployeesOfBusiness',
1530
+ numEmployeesOfBusinessCenter(),
1531
+ 'How many employees does the business have?',
1532
+ updates
1533
+ )
1534
+ }
1535
+
1536
+ function claimStatus(updates = {}) {
1537
+ return sqstep(
1538
+ 'claimStatus',
1539
+ claimStatusCenter(),
1540
+ 'What is the status of the claim?',
1541
+ updates
1542
+ )
1543
+ }
1544
+
1545
+ function causeOfInjury(updates = {}) {
1546
+ return sqstep(
1547
+ 'causeOfInjury',
1548
+ causeOfInjuryCenter(),
1549
+ 'What was the cause of the injury?',
1550
+ updates
1551
+ )
1552
+ }
1553
+
1554
+ function causeOfDeath(updates = {}) {
1555
+ return sqstep(
1556
+ 'causeOfDeath',
1557
+ causeOfDeathCenter(),
1558
+ 'What was the cause of death?',
1559
+ updates
1560
+ )
1561
+ }
1562
+
1563
+ function relationshipToVictim(updates = {}) {
1564
+ return sqstep(
1565
+ 'relationshipToVictim',
1566
+ relationshipToVictimCenter(),
1567
+ 'What is your relationship to the victim?',
1568
+ updates
1569
+ )
1570
+ }
1571
+
1572
+ function criminalChargesFiled(updates = {}) {
1573
+ return sqstep(
1574
+ 'criminalChargesFiled',
1575
+ criminalChargesFiledCenter(),
1576
+ 'Have criminal charges been filed?',
1577
+ updates
1578
+ )
1579
+ }
1580
+
1581
+ // ------ Common
1582
+
1583
+ const formNavigation = () => ({
1584
+ $el: 'div',
1585
+ attrs: {
1586
+ class: 'step-nav'
1587
+ },
1588
+ children: [
1589
+ {
1590
+ $formkit: 'button',
1591
+ name: 'back_button',
1592
+ onClick: '$setPreviousStep($prevStepFunc($get(form)))',
1593
+ children: 'Back',
1594
+ style: {
1595
+ if: '$activeStep === $firstStep()',
1596
+ then: 'visibility: hidden;'
1597
+ }
1598
+ },
1599
+ {
1600
+ $formkit: 'button',
1601
+ name: 'next_button',
1602
+ onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
1603
+ children: {
1604
+ if: '$activeStep === $firstStep()',
1605
+ then: 'Start',
1606
+ else: 'Next'
1607
+ },
1608
+ outerClass: {
1609
+ if: '$activeStep === $lastStep()',
1610
+ then: 't-hidden',
1611
+ else: ''
1612
+ },
1613
+ style: {
1614
+ if: '$activeStep === $lastStep()',
1615
+ then: 'display: none;'
1616
+ }
1617
+ },
1618
+ {
1619
+ $formkit: 'submit',
1620
+ name: 'submit_button',
1621
+ label: 'Submit',
1622
+ if: '$activeStep === $lastStep()',
1623
+ style: {
1624
+ if: '$activeStep !== $lastStep()',
1625
+ then: 'display: none;'
1626
+ }
1627
+ }
1628
+ ]
1629
+ });
1630
+
1631
+ const formDetails = () => ({
1632
+ $el: 'pre',
1633
+ if: '$urlParam("fdbg", "") == 1',
1634
+ children: [
1635
+ {
1636
+ $el: 'pre',
1637
+ children: '$stringify( $get(form).value )',
1638
+ attrs: {
1639
+ class: 't-text-xs',
1640
+ style: 'overflow: scroll'
1641
+ }
1642
+ },
1643
+ {
1644
+ $el: 'pre',
1645
+ children: ['activeStep: ', '$activeStep'],
1646
+ attrs: {
1647
+ class: 't-text-xs',
1648
+ style: 'overflow: scroll'
1649
+ }
1650
+ },
1651
+ {
1652
+ $el: 'pre',
1653
+ children: ['stepHistory: ', '$stepHistory'],
1654
+ attrs: {
1655
+ class: 't-text-xs',
1656
+ style: 'overflow: scroll'
1657
+ }
1658
+ },
1659
+ {
1660
+ $el: 'pre',
1661
+ children: ['stepQueue: ', '$stepQueue'],
1662
+ attrs: {
1663
+ class: 't-text-xs',
1664
+ style: 'overflow: scroll'
1665
+ }
1666
+ },
1667
+ {
1668
+ $el: 'pre',
1669
+ children: ['steps: ', '$stepKeys()'],
1670
+ attrs: {
1671
+ class: 't-text-xs',
1672
+ style: 'overflow: scroll'
1673
+ }
1674
+ }
1675
+ ]
1676
+ });
1677
+
1678
+ const formPropDefaults = {
1679
+ type: 'form',
1680
+ id: 'form',
1681
+ config: { validationVisibility: 'submit' },
1682
+ onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
1683
+ plugins: '$plugins',
1684
+ actions: false,
1685
+ anchorElement: 'form-anchor',
1686
+ useLocalStorage: true,
1687
+ prepop: {
1688
+ fromURL: true
1689
+ },
1690
+ errorCodes: {
1691
+ 403: { message: "An Error Occurred", abort: false },
1692
+ 409: { abort: false },
1693
+ 429: "An Error Occurred",
1694
+ 504: { message: "An Error Occurred", abort: false },
1695
+ },
1696
+ formClass: '!t-max-w-[40rem]'
1697
+ };
1698
+
1699
+ function formProps(updates) {
1700
+ const props = merge(
1701
+ formPropDefaults,
1702
+ updates
1703
+ );
1704
+ if (props.formId && !props.name) {
1705
+ props.name = props.formId;
1706
+ }
1707
+ return props
1708
+ }
1709
+
1710
+ const metaDefaults = {
1711
+ tcpaLanguage: TCPA_LANGUAGE
1712
+ };
1713
+
1714
+ function metaProps(updates) {
1715
+ const data = merge(
1716
+ metaDefaults,
1717
+ updates
1718
+ );
1719
+ return {
1720
+ type: 'meta',
1721
+ data
1722
+ }
1723
+ }
1724
+
1725
+ function defaultMetaProps() {
1726
+ return metaProps({
1727
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1728
+ commentsPlaceholders: TOLPCommentsPlaceholders,
1729
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1730
+ finalHeadlines: TOLPFinalHeadlines,
1731
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1732
+ finalSubHeadlines: TOLPFinalSubHeadlines,
1733
+ })
1734
+ }
1735
+
1736
+ const dynamicSchemaNode = {
1737
+ $cmp: 'FormKitSchema',
1738
+ if: '$get(Type_Of_Legal_Problem).value',
1739
+ props: {
1740
+ schema: '$meta.dynamicSchema',
1741
+ data: '$buildData($meta)'
1742
+ }
1743
+ };
1744
+
1745
+ const formAnchorDefaults = {
1746
+ $el: 'div',
1747
+ children: [
1748
+ {
1749
+ $el: 'div',
1750
+ attrs: {
1751
+ id: 'form-anchor',
1752
+ class: 't-absolute',
1753
+ style: { top: '-30px', left: 0 }
1754
+ }
1755
+ }
1756
+ ],
1757
+ attrs: {
1758
+ class: 't-relative'
1759
+ }
1760
+ };
1761
+
1762
+ function formAnchor(updates) {
1763
+ return merge(
1764
+ formAnchorDefaults,
1765
+ updates
1766
+ )
1767
+ }
1768
+
1769
+ const progressBarDefaults = {
1770
+ $el: 'div',
1771
+ attrs: {
1772
+ class: 't-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center',
1773
+ style: {
1774
+ if: '$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())',
1775
+ then: 'display: none'
1776
+ },
1777
+ },
1778
+ children: [
1779
+ {
1780
+ $el: 'div',
1781
+ attrs: {
1782
+ class: 't-flex t-justify-center'
1783
+ },
1784
+ children: [
1785
+ {
1786
+ $el: 'span',
1787
+ attrs: {
1788
+ id: 'progress-bar-text',
1789
+ class: 't-text-sm t-mb-1'
1790
+ },
1791
+ children: [
1792
+ "0% Complete"
1793
+ ]
1794
+ },
1795
+ ]
1796
+ },
1797
+ {
1798
+ $el: 'div',
1799
+ attrs: {
1800
+ class: 't-bg-gray-100 t-w-9/12 t-rounded'
1801
+ },
1802
+ children: [
1803
+ {
1804
+ $el: 'div',
1805
+ attrs: {
1806
+ id: 'progress-bar',
1807
+ class: 't-flex t-flex-col t-justify-center t-text-center t-whitespace-nowrap t-w-[10%] t-h-1.5 t-rounded t-text-white t-bg-[#007bff]',
1808
+ style: {
1809
+ transition: 'width 0.5s ease'
1810
+ },
1811
+ },
1812
+ }
1813
+ ]
1814
+ }
1815
+ ]
1816
+ };
1817
+
1818
+ function progressBar(updates) {
1819
+ return merge(
1820
+ progressBarDefaults,
1821
+ updates
1822
+ )
1823
+ }
1824
+
1825
+ function headlineDefaults(updates = {}) {
1826
+ return {
1827
+ $el: 'h1',
1828
+ attrs: {
1829
+ 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 || '')
1830
+ }
1831
+ }
1832
+ }
1833
+
1834
+ function headline(updates = {}) {
1835
+ return merge(
1836
+ headlineDefaults(updates),
1837
+ updates
1838
+ )
1839
+ }
1840
+
1841
+ function defaultHeadline() {
1842
+ return headline({
1843
+ children: '$urlParam("hl", "Start Here For a Free Consultation")',
1844
+ if: '$activeStep === $firstStep()'
1845
+ })
1846
+ }
1847
+
1848
+ function subHeadlineDefaults(updates = {}) {
1849
+ return {
1850
+ $el: 'h3',
1851
+ attrs: {
1852
+ 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 || '')
1853
+ }
1854
+ }
1855
+ }
1856
+
1857
+ function subHeadline(updates = {}) {
1858
+ return merge(
1859
+ subHeadlineDefaults(updates),
1860
+ updates
1861
+ )
1862
+ }
1863
+
1864
+ const hiddenInputsBase = [
1865
+ {
1866
+ $formkit: 'hidden',
1867
+ name: "gclid",
1868
+ value: null
1869
+ },
1870
+ {
1871
+ $formkit: 'hidden',
1872
+ name: "campaignid",
1873
+ value: null
1874
+ },
1875
+ {
1876
+ $formkit: 'hidden',
1877
+ name: "s",
1878
+ value: null
1879
+ }
1880
+ ];
1881
+
1882
+ const hiddenInputsLegal = [
1883
+ {
1884
+ $formkit: 'hidden',
1885
+ name: "vertical",
1886
+ value: "Legal"
1887
+ },
1888
+ {
1889
+ $formkit: 'hidden',
1890
+ name: "TCPA_Language",
1891
+ value: "$meta.tcpaLanguage"
1892
+ },
1893
+ ...hiddenInputsBase
1894
+ ];
1895
+
1896
+ const legalRedirectMapDefaults = {
1897
+ '*': LegalRedirectUrl()
1898
+ };
1899
+
1900
+
1901
+ function legalRedirectMap(updates) {
1902
+ return merge(
1903
+ legalRedirectMapDefaults,
1904
+ updates
1905
+ )
1906
+ }
1907
+
1908
+ const legalAllValueOverrideMap = {
1909
+ 'Civil_Defense': {
1910
+ 'Yes': {
1911
+ 'Type_Of_Legal_Problem': 'Defend a Lawsuit'
1912
+ },
1913
+ 'No': {
1914
+ 'Type_Of_Legal_Problem': 'File a Lawsuit'
1915
+ }
1916
+ },
1917
+ 'Type_Of_Legal_Problem_Display': {
1918
+ // Accidents and PI
1919
+ 'Auto Accident': {
1920
+ 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
1921
+ },
1922
+ 'Dog Bite': {
1923
+ 'Type_Of_Legal_Problem': 'Personal Injury'
1924
+ },
1925
+ 'Slip and Fall': {
1926
+ 'Type_Of_Legal_Problem': 'Personal Injury'
1927
+ },
1928
+ 'Workplace Injury': {
1929
+ 'Type_Of_Legal_Problem': 'Workers Compensation'
1930
+ },
1931
+ 'Trucking Accident': {
1932
+ 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
1933
+ },
1934
+ 'Motorcycle Accident': {
1935
+ 'Type_Of_Legal_Problem': 'Auto and Car Accidents',
1936
+ },
1937
+ 'Other Accidents or Injuries': {
1938
+ 'Type_Of_Legal_Problem': 'Personal Injury'
1939
+ },
1940
+ // Civil
1941
+ 'Automobile Accident': {
1942
+ 'Type_Of_Legal_Problem': 'Auto and Car Accidents'
1943
+ },
1944
+ 'Contract Disputes': {
1945
+ 'Type_Of_Legal_Problem': 'Business Lawyers'
1946
+ },
1947
+ 'Defamation and Slander': {
1948
+ 'Type_Of_Legal_Problem': 'File a Lawsuit'
1949
+ },
1950
+ 'Dog Bite': {
1951
+ 'Type_Of_Legal_Problem': 'Personal Injury'
1952
+ },
1953
+ 'Employment and Workplace': {
1954
+ 'Type_Of_Legal_Problem': 'Employment and Workplace'
1955
+ },
1956
+ 'Fraud': {
1957
+ 'Type_Of_Legal_Problem': 'Consumer Lawyers'
1958
+ },
1959
+ 'Medical Malpractice': {
1960
+ 'Type_Of_Legal_Problem': 'Medical Malpractice'
1961
+ },
1962
+ 'Personal Injury': {
1963
+ 'Type_Of_Legal_Problem': 'Personal Injury'
1964
+ },
1965
+ 'Property Damage': {
1966
+ 'Type_Of_Legal_Problem': 'Property Damage'
1967
+ },
1968
+ 'Small Claims': {
1969
+ 'Type_Of_Legal_Problem': 'File a Lawsuit'
1970
+ },
1971
+ 'Real Estate': {
1972
+ 'Type_Of_Legal_Problem': 'Real Estate'
1973
+ },
1974
+ 'Other (describe on next page)': {
1975
+ 'Type_Of_Legal_Problem': 'Not Sure or Other'
1976
+ },
1977
+ // Contracts
1978
+ 'Contract Creation': {
1979
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
1980
+ 'Business_Services': 'Contracts'
1981
+ },
1982
+ 'Contract Enforcement': {
1983
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
1984
+ 'Business_Services': 'Contracts'
1985
+ },
1986
+ 'Contract Cancellation': {
1987
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
1988
+ 'Business_Services': 'Contracts'
1989
+ },
1990
+ 'Contract Fraud': {
1991
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
1992
+ 'Business_Services': 'Contracts'
1993
+ },
1994
+ 'Breach of Contract': {
1995
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
1996
+ 'Business_Services': 'Contracts'
1997
+ },
1998
+ 'Other Contract Issues': {
1999
+ 'Type_Of_Legal_Problem': 'Business Lawyers',
2000
+ 'Business_Services': 'Contracts'
2001
+ },
2002
+ // Criminal
2003
+ 'Criminal Defense': {
2004
+ 'Type_Of_Legal_Problem': 'Criminal and Felony'
2005
+ },
2006
+ 'Victim of a Crime': {
2007
+ 'Type_Of_Legal_Problem': 'Victim of a Crime'
2008
+ },
2009
+ 'DUI and DWI': {
2010
+ 'Type_Of_Legal_Problem': 'DUI and DWI'
2011
+ },
2012
+ 'Expungement': {
2013
+ 'Type_Of_Legal_Problem': 'Expungement'
2014
+ },
2015
+ 'Harassment': {
2016
+ 'Type_Of_Legal_Problem': 'Criminal and Felony'
2017
+ },
2018
+ 'Not Sure or Other': {
2019
+ 'Type_Of_Legal_Problem': 'Not Sure or Other'
2020
+ },
2021
+ // Employment and Workplace
2022
+ 'Workplace Harassment': {
2023
+ 'Type_Of_Legal_Problem': 'Workplace Harassment'
2024
+ },
2025
+ 'Workplace Discrimination': {
2026
+ 'Type_Of_Legal_Problem': 'Workplace Discrimination'
2027
+ },
2028
+ 'Wrongful Termination': {
2029
+ 'Type_Of_Legal_Problem': 'Wrongful Termination'
2030
+ },
2031
+ 'Payment Disputes': {
2032
+ 'Type_Of_Legal_Problem': 'Employment and Workplace'
2033
+ },
2034
+ 'Workers Compensation': {
2035
+ 'Type_Of_Legal_Problem': 'Workers Compensation'
2036
+ },
2037
+ 'Unemployment': {
2038
+ 'Type_Of_Legal_Problem': 'Unemployment'
2039
+ },
2040
+ 'Other Workplace Issues': {
2041
+ 'Type_Of_Legal_Problem': 'Employment and Workplace'
2042
+ },
2043
+ // Malpractice
2044
+ 'Attorney Malpractice': {
2045
+ 'Type_Of_Legal_Problem': 'Civil Lawsuit'
2046
+ },
2047
+ 'Other Malpractice Issues': {
2048
+ 'Type_Of_Legal_Problem': 'Not Sure or Other'
2049
+ },
2050
+ // Repossession
2051
+ 'Vehicle Repossession': {
2052
+ 'Type_Of_Legal_Problem': 'Bankruptcy'
2053
+ },
2054
+ 'Property Repossession': {
2055
+ 'Type_Of_Legal_Problem': 'Bankruptcy'
2056
+ },
2057
+ 'Other Repossession Issues': {
2058
+ 'Type_Of_Legal_Problem': 'Not Sure or Other'
2059
+ },
2060
+ // Real Estate
2061
+ 'Contracts and Agreements': {
2062
+ 'Type_Of_Legal_Problem': 'Real Estate'
2063
+ },
2064
+ 'Deeds, Liens, and Titles': {
2065
+ 'Type_Of_Legal_Problem': 'Real Estate'
2066
+ },
2067
+ 'Foreclosure': {
2068
+ 'Type_Of_Legal_Problem': 'Foreclosure'
2069
+ },
2070
+ 'Insurance': {
2071
+ 'Type_Of_Legal_Problem': 'Insurance'
2072
+ },
2073
+ 'Landlord and Tenant': {
2074
+ 'Type_Of_Legal_Problem': 'Landlord and Tenant',
2075
+ },
2076
+ 'Loans and Mortgages': {
2077
+ 'Type_Of_Legal_Problem': 'Real Estate',
2078
+ },
2079
+ 'Wills, Trusts, and Estates': {
2080
+ 'Type_Of_Legal_Problem': 'Wills and Trusts'
2081
+ },
2082
+ 'Property Damage': {
2083
+ 'Type_Of_Legal_Problem': 'Property Damage'
2084
+ },
2085
+ 'Other Real Estate Issues': {
2086
+ 'Type_Of_Legal_Problem': 'Real Estate'
2087
+ }
2088
+ }
2089
+ };
2090
+
2091
+ const TOLPCommentsPlaceholders = {
2092
+ 'Adoption': 'Example: "I need help with adoption forms"',
2093
+ 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
2094
+ '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"',
2095
+ 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
2096
+ 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
2097
+ 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
2098
+ 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
2099
+ 'Child Custody': 'Example: "Need help getting custody"',
2100
+ 'Child Support': 'Example: "Issues with child support payments"',
2101
+ 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
2102
+ 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
2103
+ 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
2104
+ 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
2105
+ 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
2106
+ 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
2107
+ 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
2108
+ 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
2109
+ 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
2110
+ 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
2111
+ 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
2112
+ 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
2113
+ 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
2114
+ 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
2115
+ 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
2116
+ 'Guardianship': 'Example: "I need help with guardianship documents"',
2117
+ 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
2118
+ 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
2119
+ 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
2120
+ 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
2121
+ 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
2122
+ 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
2123
+ 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
2124
+ 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
2125
+ 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
2126
+ 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
2127
+ 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
2128
+ '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"',
2129
+ 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
2130
+ 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
2131
+ 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
2132
+ 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
2133
+ 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
2134
+ 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
2135
+ 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
2136
+ 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
2137
+ '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"',
2138
+ 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
2139
+ 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
2140
+ 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
2141
+ 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
2142
+ 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
2143
+ 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
2144
+ 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
2145
+ 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
2146
+ 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
2147
+ };
2148
+
2149
+ const TOLPFinalHeadlines = {
2150
+ // 'Adoption': '',
2151
+ };
2152
+
2153
+ const TOLPFinalSubHeadlines = {
2154
+ 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
2155
+ // 'Asbestos and Mesothelioma': '',
2156
+ 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
2157
+ 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
2158
+ // 'Birth Certificate and Name Change': '',
2159
+ // 'Business Lawyers': '',
2160
+ // 'Child Custody and Support': '',
2161
+ // 'Civil Rights and Discrimination': '',
2162
+ // 'Civil Lawsuit': '',
2163
+ // 'Consumer Lawyers': '',
2164
+ 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
2165
+ // 'Criminal and Felony': '',
2166
+ // 'Debt and Collections': '',
2167
+ 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
2168
+ 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
2169
+ 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
2170
+ // 'Employment and Workplace': '',
2171
+ // 'Expungement': '',
2172
+ // 'Family Issues': '',
2173
+ 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
2174
+ 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
2175
+ // 'Harassment and Discrimination': '',
2176
+ // 'Identity Theft': '',
2177
+ 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
2178
+ // 'Insurance': '',
2179
+ 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
2180
+ // 'Lemon Law': '',
2181
+ 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
2182
+ 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
2183
+ 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
2184
+ 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
2185
+ // 'Power of Attorney': '',
2186
+ 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
2187
+ // 'Product Liability': '',
2188
+ // 'Property Damage': '',
2189
+ 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
2190
+ 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
2191
+ 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
2192
+ // 'Traffic and Tickets': '',
2193
+ 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
2194
+ // 'Victim of a Crime': '',
2195
+ // 'Wills and Trusts': '',
2196
+ 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
2197
+ // 'Wrongful Death': '',
2198
+ // 'Wrongful Termination': '',
2199
+ // 'Not Sure or Other': ''
2200
+ // 'Sexual Harassment': '',
2201
+ // 'Workplace Harassment': '',
2202
+ // 'Non-Workplace Harassment': '',
2203
+ // 'Workplace Discrimination': '',
2204
+ // 'Non-Workplace Discrimination': '',
2205
+ };
2206
+
2207
+ const nextStepsLegalDefault = [
2208
+ 'haveAttorney',
2209
+ 'degreeOfInterest',
2210
+ 'commentsWithBankruptcy',
2211
+ 'zipcode',
2212
+ 'legalCrossSells',
2213
+ 'firstAndLast',
2214
+ 'contactInfo',
2215
+ ];
1113
2216
 
1114
- const stepDefaults = (step, stepKey) => ({
1115
- $el: 'section',
1116
- if: '$stepEnabled("' + step + '")',
1117
- attrs: {
1118
- hidden: '$activeStep !== "' + step + '"',
1119
- key: stepKey ? stepKey : step
1120
- }
1121
- });
2217
+ const nextStepsLegalDefaultLPM = [
2218
+ 'haveAttorney',
2219
+ 'degreeOfInterest',
2220
+ 'lawyerPaymentMethod',
2221
+ 'commentsWithBankruptcy',
2222
+ 'zipcode',
2223
+ 'legalCrossSells',
2224
+ 'firstAndLast',
2225
+ 'contactInfo',
2226
+ ];
1122
2227
 
1123
- function step(name, inputs, nextOnEnter = true, nextOnInput = false, stepKey = undefined, nextStepMap = undefined, autoFocus = undefined) {
1124
- if (typeof nextOnEnter === 'undefined') {
1125
- nextOnEnter = true;
1126
- }
1127
- if (inputs && inputs.length && (nextOnEnter || nextOnInput)) {
1128
- const lastInput = findLastInput(inputs[inputs.length - 1]);
1129
- if (lastInput && nextOnEnter === true) {
1130
- lastInput.onKeypress = NEXT_ON_ENTER;
1131
- }
1132
- if (lastInput && nextOnInput === true) {
1133
- lastInput.onInput = NEXT_ON_INPUT;
1134
- }
1135
- }
2228
+ const nextStepsLegalNoDOI = [
2229
+ 'haveAttorney',
2230
+ 'commentsWithBankruptcy',
2231
+ 'zipcode',
2232
+ 'legalCrossSells',
2233
+ 'firstAndLast',
2234
+ 'contactInfo',
2235
+ ];
1136
2236
 
1137
- return merge(
1138
- stepDefaults(name, stepKey),
1139
- {
1140
- children: [
1141
- {
1142
- $formkit: 'group',
1143
- id: name,
1144
- name: name,
1145
- nextStepMap: nextStepMap,
1146
- autoFocus: autoFocus,
1147
- children: inputs
1148
- }
1149
- ]
1150
- }
1151
- )
1152
- }
2237
+ const nextStepsLegalNoHA = [
2238
+ 'degreeOfInterest',
2239
+ 'commentsWithBankruptcy',
2240
+ 'zipcode',
2241
+ 'legalCrossSells',
2242
+ 'firstAndLast',
2243
+ 'contactInfo',
2244
+ ];
1153
2245
 
1154
- function commentsWithBankruptcyV2(updates = {}) {
1155
- return step(
1156
- 'commentsWithBankruptcy',
1157
- [
1158
- commentsStepHeadline(updates),
1159
- comments({
1160
- label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1161
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1162
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-40' : updates.inputClass,
1163
- }),
1164
- bankruptcyCrossSell(),
1165
- {
1166
- $el: 'div',
1167
- if: '$get(CrossSell_Bankruptcy).value == true',
1168
- children: [
1169
- comments({
1170
- label: 'Bankruptcy or debt details:',
1171
- placeholder: 'Please describe your bankrtupcy or debt situation in a few words...',
1172
- inputClass: '!t-h-16'
1173
- }, 'CrossSell:Bankruptcy')
1174
- ],
1175
- }
2246
+ const nextStepsMapGeneralLegal = {
2247
+ 'Type_Of_Legal_Problem': {
2248
+ 'Adoption': [
2249
+ 'maritalStatus',
2250
+ 'haveChildren',
2251
+ ...nextStepsLegalDefaultLPM
1176
2252
  ],
1177
- updates.nextOnEnter,
1178
- )
1179
- }
1180
-
1181
- function contactInfoV2(updates = {}) {
1182
- return step(
1183
- 'contactInfo',
1184
- [
1185
- contactStepHeadline(updates),
1186
- contactStepSubHeadline(updates),
1187
- // Added TF everywhere
1188
- trustedFormScript(),
1189
- email(),
1190
- phone(),
1191
- TCPAConsent(),
1192
- secureIcon()
2253
+ 'Asbestos and Mesothelioma': [
2254
+ 'incidentDate',
2255
+ 'doctorTreatment',
2256
+ ...nextStepsLegalDefault
1193
2257
  ],
1194
- updates.nextOnEnter
1195
- )
1196
- }
1197
-
1198
- function firstAndLastV2(updates = {}) {
1199
- return step(
1200
- 'firstAndLast',
1201
- [
1202
- firstAndLastStepHeadline(updates),
1203
- firstName(),
1204
- lastName()
2258
+ 'Auto and Car Accidents': [
2259
+ 'incidentDate',
2260
+ 'atFault',
2261
+ 'primaryInjury',
2262
+ 'doctorTreatment',
2263
+ 'policeReportFiled',
2264
+ ...nextStepsLegalNoDOI
1205
2265
  ],
1206
- updates.nextOnEnter
1207
- )
1208
- }
1209
-
1210
- function employmentAndWorkplaceTOLPAndZip(updates = {}) {
1211
- return step(
1212
- 'employmentAndWorkplaceTOLPAndZip',
1213
- [
1214
- {
1215
- $formkit: 'hidden',
1216
- name: "Type_Of_Legal_Problem",
1217
- id: "Type_Of_Legal_Problem",
1218
- value: "Employment and Workplace"
1219
- },
1220
- employmentAndWorkplaceTOLPDisplay({
1221
- if: 'true'
1222
- }),
1223
- zipcode()
2266
+ 'Bankruptcy': [
2267
+ 'totalMonthlyIncome',
2268
+ 'totalDebt',
2269
+ 'ownRealEstate',
2270
+ 'valueOfAssets',
2271
+ ...nextStepsLegalDefault
1224
2272
  ],
1225
- updates.nextOnEnter
1226
- )
1227
- }
1228
-
1229
- function employmentAndWorkplaceTOLPQuestions(updates = {}) {
1230
- return step(
1231
- 'TOLPQuestions',
1232
- [
1233
- questionsStepHeadline(updates),
1234
- WorkplaceHarassmentQuestions(),
1235
- WorkplaceDiscriminationQuestions(),
1236
- WrongfulTerminationQuestions(),
1237
- WorkersCompensationQuestions(),
1238
- PersonalInjuryQuestions(),
1239
- UnemploymentQuestions(),
1240
- EmploymentAndWorkplaceQuestions(),
1241
- NotSureOrOtherQuestions()
2273
+ 'Business Lawyers': [
2274
+ 'businessServices',
2275
+ 'businessType',
2276
+ 'numEmployeesOfBusiness',
2277
+ ...nextStepsLegalDefault
1242
2278
  ],
1243
- updates.nextOnEnter
1244
- )
1245
- }
2279
+ 'Child Custody': [
2280
+ 'childRelationship',
2281
+ 'childHome',
2282
+ 'childPrimaryCaregiver',
2283
+ ...nextStepsLegalDefaultLPM
2284
+ ],
2285
+ 'Child Support': [
2286
+ 'childRelationship',
2287
+ 'childHome',
2288
+ 'childPrimaryCaregiver',
2289
+ ...nextStepsLegalDefaultLPM
2290
+ ],
2291
+ 'Civil Rights and Discrimination': [
2292
+ 'civilRightsType',
2293
+ ...nextStepsLegalDefault
2294
+ ],
2295
+ 'Civil Lawsuit': [
2296
+ 'civilDefense',
2297
+ 'lawsuitOtherParty',
2298
+ ...nextStepsLegalDefault
2299
+ ],
2300
+ 'File a Lawsuit': [
2301
+ 'civilLawsuitTOLPDisplay',
2302
+ 'lawsuitOtherParty',
2303
+ ...nextStepsLegalDefault
2304
+ ],
2305
+ 'Defend a Lawsuit': [
2306
+ 'lawsuitOtherParty',
2307
+ ...nextStepsLegalDefault
2308
+ ],
2309
+ 'Consumer Lawyers': [
2310
+ 'consumerLawyerType',
2311
+ 'incidentDate',
2312
+ 'lawsuitOtherParty',
2313
+ ...nextStepsLegalDefault
2314
+ ],
2315
+ 'Criminal and Felony': [
2316
+ 'criminalTOLPDisplay',
2317
+ 'crimeCommittedDate',
2318
+ 'roleInMatterCriminal',
2319
+ 'pendingCharges',
2320
+ ...nextStepsLegalDefaultLPM
2321
+ ],
2322
+ 'Debt and Collections': [
2323
+ 'totalMonthlyIncome',
2324
+ 'totalDebt',
2325
+ 'ownRealEstate',
2326
+ 'valueOfAssets',
2327
+ ...nextStepsLegalDefault
2328
+ ],
2329
+ 'Divorce and Separation': [
2330
+ 'maritalStatus',
2331
+ 'haveChildren',
2332
+ ...nextStepsLegalDefaultLPM
2333
+ ],
2334
+ 'DUI and DWI': [
2335
+ 'incidentDate',
2336
+ 'priorAlcoholOffenses',
2337
+ 'typeOfAlcoholTest',
2338
+ 'bloodContentAlcoholTest',
2339
+ 'pendingCharges',
2340
+ ...nextStepsLegalDefault
2341
+ ],
2342
+ 'Employment and Workplace': [
2343
+ 'employmentAndWorkplaceTOLPDisplay',
2344
+ 'numEmployeesOfBusiness',
2345
+ 'employerType',
2346
+ 'employeeAtCompany',
2347
+ ...nextStepsLegalDefault
2348
+ ],
2349
+ 'Expungement': [
2350
+ 'incidentDate',
2351
+ 'criminalChargeType',
2352
+ ...nextStepsLegalDefaultLPM
2353
+ ],
2354
+ 'Family Issues': [
2355
+ 'maritalStatus',
2356
+ 'haveChildren',
2357
+ ...nextStepsLegalDefaultLPM
2358
+ ],
2359
+ 'Foreclosure': [
2360
+ 'ownRealEstate',
2361
+ 'typeOfProperty',
2362
+ 'amountPaymentsPastDue',
2363
+ 'loanAmount',
2364
+ 'defaultNotice',
2365
+ ...nextStepsLegalDefault
2366
+ ],
2367
+ 'Guardianship': [
2368
+ 'maritalStatus',
2369
+ 'haveChildren',
2370
+ ...nextStepsLegalDefaultLPM
2371
+ ],
2372
+ 'Immigration and Visas': [
2373
+ 'countryOfCitizenship',
2374
+ 'immigrationLocation',
2375
+ 'immigrationEntry',
2376
+ 'immigrationType',
2377
+ 'immigrationStatus',
2378
+ 'immigrationDetails',
2379
+ ...nextStepsLegalDefault
2380
+ ],
2381
+ 'Landlord and Tenant': [
2382
+ 'landlordTenantIssue',
2383
+ 'landlordTenantParty',
2384
+ ...nextStepsLegalDefault
2385
+ ],
2386
+ 'Lemon Law': [
2387
+ 'incidentDate',
2388
+ 'lawsuitOtherParty',
2389
+ ...nextStepsLegalDefault
2390
+ ],
2391
+ 'Long Term Disability': [
2392
+ 'applicantOccupation',
2393
+ 'applicantAge',
2394
+ 'applicantLTDisabilityPolicy',
2395
+ 'applicantDisabilityHowObtain',
2396
+ 'applicantPreviouslyAppliedLtdBenefits',
2397
+ 'applicantReceivedDisabilityBenefits',
2398
+ 'applicantMonthlySalary',
2399
+ ...nextStepsLegalNoDOI
2400
+ ],
2401
+ 'Medical Malpractice': [
2402
+ 'incidentDate',
2403
+ 'claimStatus',
2404
+ 'doctorTreatment',
2405
+ 'medicalMalpracticeInjuries',
2406
+ ...nextStepsLegalDefault
2407
+ ],
2408
+ 'Patents and Intellectual Property': [
2409
+ 'patentAssistanceType',
2410
+ 'patentFor',
2411
+ ...nextStepsLegalDefault
2412
+ ],
2413
+ 'Personal Injury': [
2414
+ 'incidentDate',
2415
+ 'claimStatus',
2416
+ 'atFault',
2417
+ 'primaryInjury',
2418
+ 'doctorTreatment',
2419
+ ...nextStepsLegalNoDOI
2420
+ ],
2421
+ 'Probate and Estates': [
2422
+ 'valueOfAssets',
2423
+ 'typeOfAssets',
2424
+ 'roleInMatterProbate',
2425
+ 'estateLegalServicesNeeded',
2426
+ ...nextStepsLegalDefault
2427
+ ],
2428
+ 'Property Damage': [
2429
+ 'realEstateArea',
2430
+ 'wouldLikeLawyerTo',
2431
+ ...nextStepsLegalDefault
2432
+ ],
2433
+ 'Real Estate': [
2434
+ 'realEstateTOLPDisplay',
2435
+ 'realEstateArea',
2436
+ 'wouldLikeLawyerTo',
2437
+ ...nextStepsLegalDefault
2438
+ ],
2439
+ 'Social Security Disability and Insurance': [
2440
+ 'applicantAge',
2441
+ 'disabilityConditionStopWork',
2442
+ 'disabilityWorkHistory',
2443
+ 'socialSecurityDisabilityReceivingBenefits',
2444
+ 'doctorTreatment',
2445
+ ...nextStepsLegalNoDOI
2446
+ ],
2447
+ 'Tax and IRS': [
2448
+ 'totalDebt',
2449
+ 'taxProblemDetails',
2450
+ 'taxLevel',
2451
+ 'taxIssueType',
2452
+ ...nextStepsLegalDefault
2453
+ ],
2454
+ 'Traffic and Tickets': [
2455
+ 'driversLicenseType',
2456
+ 'trafficViolations',
2457
+ 'haveCourtDate',
2458
+ ...nextStepsLegalDefault
2459
+ ],
2460
+ 'Unemployment': [
2461
+ 'numEmployeesOfBusiness',
2462
+ 'employerType',
2463
+ ...nextStepsLegalNoHA
2464
+ ],
2465
+ 'Victim of a Crime': [
2466
+ 'crimeCommittedDate',
2467
+ 'roleInMatterCriminal',
2468
+ 'pendingCharges',
2469
+ ...nextStepsLegalDefaultLPM
2470
+ ],
2471
+ 'Wills and Trusts': [
2472
+ 'valueOfAssets',
2473
+ 'typeOfAssets',
2474
+ 'roleInMatterProbate',
2475
+ 'estateLegalServicesNeeded',
2476
+ ...nextStepsLegalDefault
2477
+ ],
2478
+ 'Workers Compensation': [
2479
+ 'incidentDate',
2480
+ 'claimStatus',
2481
+ 'primaryInjury',
2482
+ 'causeOfInjury',
2483
+ 'doctorTreatment',
2484
+ ...nextStepsLegalNoDOI
2485
+ ],
2486
+ 'Workplace Harassment': [
2487
+ 'numEmployeesOfBusiness',
2488
+ 'employerType',
2489
+ 'employeeAtCompany',
2490
+ ...nextStepsLegalDefault
2491
+ ],
2492
+ 'Workplace Discrimination': [
2493
+ 'numEmployeesOfBusiness',
2494
+ 'employerType',
2495
+ 'employeeAtCompany',
2496
+ ...nextStepsLegalDefault
2497
+ ],
2498
+ 'Wrongful Death': [
2499
+ 'incidentDate',
2500
+ 'relationshipToVictim',
2501
+ 'criminalChargesFiled',
2502
+ 'causeOfDeath',
2503
+ ...nextStepsLegalNoDOI
2504
+ ],
2505
+ 'Wrongful Termination': [
2506
+ 'numEmployeesOfBusiness',
2507
+ 'employerType',
2508
+ ...nextStepsLegalDefault
2509
+ ],
2510
+ },
2511
+ '*': nextStepsLegalDefault
2512
+ };
1246
2513
 
1247
- const formNavigationV2 = () => ({
1248
- $el: 'div',
1249
- attrs: {
1250
- class: 'step-nav'
2514
+ // function filterMapByKey(obj, keyList) {
2515
+ // return Object.fromEntries(
2516
+ // Object.entries(obj).filter(([key]) => keyList.includes(key))
2517
+ // );
2518
+ // }
2519
+
2520
+ // export function filteredNextStepsMapLegal(keyList) {
2521
+ // const res = { Type_Of_Legal_Problem: filterMapByKey(nextStepsMapGeneralLegal["Type_Of_Legal_Problem"], keyList) }
2522
+ // res["*"] = nextStepsMapGeneralLegal["*"]
2523
+ // return res
2524
+ // }
2525
+
2526
+ const TOLPNextSteps = nextStepsMapGeneralLegal["Type_Of_Legal_Problem"];
2527
+
2528
+ const nextStepsMapEmploymentAndWorkplaceTOLPDisplay = {
2529
+ 'Type_Of_Legal_Problem_Display': {
2530
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2531
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2532
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2533
+ 'Unemployment': TOLPNextSteps["Unemployment"],
1251
2534
  },
1252
- children: [
1253
- {
1254
- $formkit: 'button',
1255
- name: 'back_button',
1256
- onClick: '$setPreviousStep($prevStepFunc($get(form)))',
1257
- children: 'Back',
1258
- style: {
1259
- if: '$activeStep === $firstStep()',
1260
- then: 'visibility: hidden;'
1261
- }
1262
- },
1263
- {
1264
- $formkit: 'button',
1265
- name: 'next_button',
1266
- onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
1267
- children: {
1268
- if: '$activeStep === $firstStep()',
1269
- then: 'Start',
1270
- else: 'Next'
1271
- },
1272
- outerClass: {
1273
- if: '$activeStep === $lastStep()',
1274
- then: 't-hidden',
1275
- else: ''
1276
- },
1277
- style: {
1278
- if: '$activeStep === $lastStep()',
1279
- then: 'display: none;'
1280
- }
1281
- },
1282
- {
1283
- $formkit: 'submit',
1284
- name: 'submit_button',
1285
- label: 'Submit',
1286
- if: '$activeStep === $lastStep()',
1287
- style: {
1288
- if: '$activeStep !== $lastStep()',
1289
- then: 'display: none;'
1290
- }
1291
- }
2535
+ '*': [
2536
+ 'numEmployeesOfBusiness',
2537
+ 'employerType',
2538
+ 'employeeAtCompany',
2539
+ ...nextStepsLegalDefault
1292
2540
  ]
1293
- });
2541
+ };
1294
2542
 
1295
- const formDetails = () => ({
1296
- $el: 'pre',
1297
- if: '$urlParam("fdbg", "") == 1',
1298
- children: [
1299
- {
1300
- $el: 'pre',
1301
- children: '$stringify( $get(form).value )',
1302
- attrs: {
1303
- class: 't-text-xs',
1304
- style: 'overflow: scroll'
1305
- }
1306
- },
1307
- {
1308
- $el: 'pre',
1309
- children: ['activeStep: ', '$activeStep'],
1310
- attrs: {
1311
- class: 't-text-xs',
1312
- style: 'overflow: scroll'
1313
- }
1314
- },
1315
- {
1316
- $el: 'pre',
1317
- children: ['stepHistory: ', '$stepHistory'],
1318
- attrs: {
1319
- class: 't-text-xs',
1320
- style: 'overflow: scroll'
1321
- }
1322
- },
1323
- {
1324
- $el: 'pre',
1325
- children: ['stepQueue: ', '$stepQueue'],
1326
- attrs: {
1327
- class: 't-text-xs',
1328
- style: 'overflow: scroll'
1329
- }
1330
- },
1331
- {
1332
- $el: 'pre',
1333
- children: ['steps: ', '$stepKeys()'],
1334
- attrs: {
1335
- class: 't-text-xs',
1336
- style: 'overflow: scroll'
1337
- }
1338
- }
1339
- ]
1340
- });
2543
+ const meta = defaultMetaProps();
2544
+
2545
+ meta.data.dynamicSchema = [
2546
+ atFault(),
2547
+ causeOfDeath(),
2548
+ causeOfInjury(),
2549
+ claimStatus(),
2550
+ criminalChargesFiled(),
2551
+ degreeOfInterest(),
2552
+ doctorTreatment(),
2553
+ employerType(),
2554
+ employeeAtCompany(),
2555
+ haveAttorney(),
2556
+ incidentDate({
2557
+ nextOnInput: false
2558
+ }),
2559
+ numEmployeesOfBusiness(),
2560
+ primaryInjury(),
2561
+ relationshipToVictim(),
2562
+ zipcode(),
2563
+ commentsWithBankruptcy({
2564
+ label: null,
2565
+ headline: 'Please briefly describe your situation:',
2566
+ headlineClass: '!t-text-dark',
2567
+ }),
2568
+ legalCrossSells({
2569
+ headlineClass: '!t-text-dark'
2570
+ }),
2571
+ autoAndCarAccidentCrossSellQuestions(),
2572
+ personalInjuryCrossSellQuestions(),
2573
+ workersCompensationCrossSellQuestions(),
2574
+ duiAndDWICrossSellQuestions(),
2575
+ ssdiCrossSellQuestions(),
2576
+ powerOfAttorneyCrossSellQuestions(),
2577
+ willsAndTrustsCrossSellQuestions(),
2578
+ divorceAndSeparationCrossSellQuestions(),
2579
+ childCustodyCrossSellQuestions(),
2580
+ firstAndLastV3({
2581
+ headlineClass: '!t-text-dark'
2582
+ }),
2583
+ ];
1341
2584
 
1342
2585
  const schema = [
1343
- defaultMetaProps(),
2586
+ meta,
1344
2587
  formAnchor(),
1345
2588
  {
1346
2589
  $cmp: 'FormKit',
@@ -1350,8 +2593,12 @@ const schema = [
1350
2593
  valueOverrideMap: legalAllValueOverrideMap
1351
2594
  }),
1352
2595
  children: [
2596
+ progressBar(),
1353
2597
  defaultHeadline(),
1354
- defaultSubHeadline(),
2598
+ subHeadline({
2599
+ children: '$urlParam("shl", "Select a Category Below to Get Started!")',
2600
+ if: '$activeStep === $firstStep()',
2601
+ }),
1355
2602
  ...hiddenInputsLegal,
1356
2603
  {
1357
2604
  $el: 'div',
@@ -1359,16 +2606,13 @@ const schema = [
1359
2606
  class: 'form-body'
1360
2607
  },
1361
2608
  children: [
1362
- employmentAndWorkplaceTOLPAndZip(),
1363
- employmentAndWorkplaceTOLPQuestions(),
1364
- commentsWithBankruptcyV2({
1365
- nextOnEnter: false
1366
- }),
1367
- firstAndLastV2(),
1368
- contactInfoV2({
1369
- nextOnEnter: false
2609
+ employmentAndWorkplaceTOLP({
2610
+ nextOnInput: false,
2611
+ nextStepMap: nextStepsMapEmploymentAndWorkplaceTOLPDisplay
1370
2612
  }),
1371
- formNavigationV2(),
2613
+ dynamicSchemaNode,
2614
+ contactInfo(),
2615
+ formNavigation(),
1372
2616
  formDetails()
1373
2617
  ]
1374
2618
  }