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