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,555 +15,185 @@ 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
- }
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
+ };
64
52
 
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
- }
53
+ const radio = (updates) => {
54
+ if (updates.name && !updates.id) {
55
+ updates.id = updates.name;
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)
66
+ };
77
67
 
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'
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';
92
72
  }
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)
93
80
  };
94
81
 
95
- function formAnchor(updates) {
96
- return merge(
97
- formAnchorDefaults,
98
- updates
99
- )
100
- }
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
+ };
101
90
 
102
- const progressBarDefaults = {
103
- $el: 'div',
104
- attrs: {
105
- class: 't-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center',
106
- style: {
107
- if: '$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())',
108
- then: 'display: none'
109
- },
110
- },
111
- children: [
112
- {
113
- $el: 'div',
114
- attrs: {
115
- class: 't-flex t-justify-center'
116
- },
117
- children: [
118
- {
119
- $el: 'span',
120
- attrs: {
121
- id: 'progress-bar-text',
122
- class: 't-text-sm t-mb-1'
123
- },
124
- children: [
125
- "0% Complete"
126
- ]
127
- },
128
- ]
129
- },
130
- {
131
- $el: 'div',
132
- attrs: {
133
- class: 't-bg-gray-100 t-w-9/12 t-rounded'
134
- },
135
- children: [
136
- {
137
- $el: 'div',
138
- attrs: {
139
- id: 'progress-bar',
140
- 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]',
141
- style: {
142
- transition: 'width 0.5s ease'
143
- },
144
- },
145
- }
146
- ]
147
- }
148
- ]
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)
149
98
  };
150
99
 
151
- function progressBar(updates) {
152
- return merge(
153
- progressBarDefaults,
154
- updates
155
- )
156
- }
100
+ const sbsYesNoRadio = (updates) => {
101
+ updates.options = ['Yes', 'No'];
102
+ return sbs2ItemRadio(updates)
103
+ };
157
104
 
158
- function headlineDefaults(updates = {}) {
159
- return {
160
- $el: 'h1',
161
- attrs: {
162
- 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 || '')
163
- }
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';
164
110
  }
165
- }
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
+ };
166
118
 
167
- function headline(updates = {}) {
168
- return merge(
169
- headlineDefaults(updates),
170
- updates
171
- )
172
- }
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
+ };
173
124
 
174
- function subHeadlineDefaults(updates = {}) {
175
- return {
176
- $el: 'h3',
177
- attrs: {
178
- 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 || '')
179
- }
125
+ const select = (updates) => {
126
+ if (updates.name && !updates.id) {
127
+ updates.id = updates.name;
180
128
  }
181
- }
182
-
183
- function subHeadline(updates = {}) {
184
- return merge(
185
- subHeadlineDefaults(updates),
186
- updates
187
- )
188
- }
129
+ return merge({
130
+ $formkit: 'select',
131
+ placeholder: "Please Select",
132
+ validation: 'required',
133
+ validationMessages: {
134
+ required: 'Field is required'
135
+ },
136
+ inputClass: 't-bg-white',
137
+ labelClass: 'required'
138
+ }, updates)
139
+ };
189
140
 
190
- const secureIconDefault = {
191
- $el: 'div',
192
- if: '$activeStep === $lastStep()',
193
- attrs: {
194
- class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
195
- },
196
- children: [
197
- {
198
- $el: 'img',
199
- attrs: {
200
- loading: 'lazy',
201
- alt: '',
202
- style: {
203
- border: 0
204
- },
205
- width: '25',
206
- height: '25',
207
- src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
208
- }
209
- },
210
- {
211
- $el: 'span',
212
- children: 'Secure & Encrypted',
213
- attrs: {
214
- class: 't-pl-2 t-pt-1 t-font-medium'
215
- }
216
- }
217
- ]
218
- };
219
-
220
-
221
- function secureIcon(updates) {
222
- return merge(
223
- secureIconDefault,
224
- updates
225
- )
226
- }
227
-
228
- const hiddenInputsBase = [
229
- {
230
- $formkit: 'hidden',
231
- name: "gclid",
232
- value: null
233
- },
234
- {
235
- $formkit: 'hidden',
236
- name: "campaignid",
237
- value: null
238
- },
239
- {
240
- $formkit: 'hidden',
241
- name: "s",
242
- value: null
243
- }
244
- ];
245
-
246
- const hiddenInputsLegal = [
247
- {
248
- $formkit: 'hidden',
249
- name: "vertical",
250
- value: "Legal"
251
- },
252
- {
253
- $formkit: 'hidden',
254
- name: "TCPA_Language",
255
- value: "$meta.tcpaLanguage"
256
- },
257
- ...hiddenInputsBase
258
- ];
259
-
260
- const legalRedirectMapDefaults = {
261
- '*': LegalRedirectUrl()
262
- };
263
-
264
-
265
- function legalRedirectMap(updates) {
266
- return merge(
267
- legalRedirectMapDefaults,
268
- updates
269
- )
270
- }
271
-
272
- const TOLPCommentsPlaceholders = {
273
- 'Adoption': 'Example: "I need help with adoption forms"',
274
- 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
275
- '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"',
276
- 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
277
- 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
278
- 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
279
- 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
280
- 'Child Custody': 'Example: "Need help getting custody"',
281
- 'Child Support': 'Example: "Issues with child support payments"',
282
- 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
283
- 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
284
- 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
285
- 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
286
- 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
287
- 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
288
- 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
289
- 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
290
- 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
291
- 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
292
- 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
293
- 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
294
- 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
295
- 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
296
- 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
297
- 'Guardianship': 'Example: "I need help with guardianship documents"',
298
- 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
299
- 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
300
- 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
301
- 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
302
- 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
303
- 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
304
- 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
305
- 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
306
- 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
307
- 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
308
- 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
309
- '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"',
310
- 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
311
- 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
312
- 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
313
- 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
314
- 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
315
- 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
316
- 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
317
- 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
318
- '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"',
319
- 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
320
- 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
321
- 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
322
- 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
323
- 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
324
- 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
325
- 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
326
- 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
327
- 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
328
- };
329
-
330
- const TOLPFinalHeadlines = {
331
- // 'Adoption': '',
332
- };
333
-
334
- const TOLPFinalSubHeadlines = {
335
- 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
336
- // 'Asbestos and Mesothelioma': '',
337
- 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
338
- 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
339
- // 'Birth Certificate and Name Change': '',
340
- // 'Business Lawyers': '',
341
- // 'Child Custody and Support': '',
342
- // 'Civil Rights and Discrimination': '',
343
- // 'Civil Lawsuit': '',
344
- // 'Consumer Lawyers': '',
345
- 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
346
- // 'Criminal and Felony': '',
347
- // 'Debt and Collections': '',
348
- 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
349
- 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
350
- 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
351
- // 'Employment and Workplace': '',
352
- // 'Expungement': '',
353
- // 'Family Issues': '',
354
- 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
355
- 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
356
- // 'Harassment and Discrimination': '',
357
- // 'Identity Theft': '',
358
- 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
359
- // 'Insurance': '',
360
- 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
361
- // 'Lemon Law': '',
362
- 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
363
- 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
364
- 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
365
- 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
366
- // 'Power of Attorney': '',
367
- 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
368
- // 'Product Liability': '',
369
- // 'Property Damage': '',
370
- 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
371
- 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
372
- 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
373
- // 'Traffic and Tickets': '',
374
- 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
375
- // 'Victim of a Crime': '',
376
- // 'Wills and Trusts': '',
377
- 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
378
- // 'Wrongful Death': '',
379
- // 'Wrongful Termination': '',
380
- // 'Not Sure or Other': ''
381
- // 'Sexual Harassment': '',
382
- // 'Workplace Harassment': '',
383
- // 'Non-Workplace Harassment': '',
384
- // 'Workplace Discrimination': '',
385
- // 'Non-Workplace Discrimination': '',
141
+ const sbsSelect = (updates) => {
142
+ updates.labelClass = 'required';
143
+ updates.wrapperClass = 'side-by-side t-items-center';
144
+ updates.innerClass = 'select-height-content';
145
+ updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
146
+ return select(updates)
386
147
  };
387
148
 
388
- // ------ Common Base Settings
389
-
390
- const checkbox = (updates) => {
149
+ const text = (updates) => {
391
150
  if (updates.name && !updates.id) {
392
151
  updates.id = updates.name;
393
152
  }
394
153
  return merge({
395
- $formkit: 'checkbox',
154
+ $formkit: 'text',
396
155
  validation: 'required',
397
156
  validationMessages: {
398
157
  required: 'Field is required'
399
- }
158
+ },
159
+ labelClass: 'required'
400
160
  }, updates)
401
161
  };
402
162
 
403
- const sbsCheckbox = (updates) => {
404
- updates.legendClass = 'legend-left required';
405
- updates.fieldsetClass = '$reset side-by-side';
406
- updates.optionsClass = 't-pl-1';
407
- updates.innerClass = 't-flex t-items-center';
408
- updates.wrapperClass = 't-mb-3';
409
- return checkbox(updates)
163
+ const sbsText = (updates) => {
164
+ updates.wrapperClass = 'side-by-side t-items-center';
165
+ return text(updates)
410
166
  };
411
167
 
412
- const col2Checkbox = (updates) => {
413
- if (!updates || !updates.legendClass) {
414
- updates.legendClass = 'required';
168
+ const textArea = (updates) => {
169
+ if (updates.name && !updates.id) {
170
+ updates.id = updates.name;
415
171
  }
416
- updates.fieldsetClass = '$reset';
417
- updates.optionsClass = 't-pl-8 md:t-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
418
- updates.innerClass = 't-items-start';
419
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
420
- return checkbox(updates)
172
+ return merge({
173
+ $formkit: 'textarea',
174
+ rows: 5,
175
+ maxlength: 500,
176
+ validation: 'required',
177
+ validationMessages: {
178
+ required: 'Field is required'
179
+ },
180
+ innerClass: 't-max-w-xl',
181
+ labelClass: 'required'
182
+ }, updates)
421
183
  };
422
184
 
423
- const radio = (updates) => {
185
+ const date = (updates) => {
424
186
  if (updates.name && !updates.id) {
425
187
  updates.id = updates.name;
426
188
  }
427
189
  return merge({
428
- $formkit: 'radio',
190
+ $formkit: 'DatePicker',
429
191
  validation: 'required',
430
192
  validationMessages: {
431
193
  required: 'Field is required'
432
194
  },
433
- optionsClass: 't-pt-3 t-pl-1',
434
- legendClass: 'required'
435
- }, updates)
436
- };
437
-
438
- const col2RadioCenter = (updates) => {
439
- updates.legendClass = 'required t-w-[100%] t-text-center';
440
- if (typeof updates.fieldsetClass === 'undefined') {
441
- updates.fieldsetClass = '$reset t-flex t-justify-center';
442
- }
443
- updates.optionsClass = 't-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2';
444
- updates.innerClass = 't-items-start';
445
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
446
- updates.optionClass = 't-pl-4 md:t-pl-8 md:t-min-w-[200px]';
447
- updates.messagesClass = 't-flex t-justify-center';
448
- updates.helpClass = 't-mt-0 t-mb-4 !t-text-sm t-text-center';
449
- return radio(updates)
450
- };
451
-
452
- const sbs2ColRadio = (updates) => {
453
- updates.legendClass = 'legend-left-flex md:t-max-w-[40%] required';
454
- updates.fieldsetClass = '$reset side-by-side-flex';
455
- updates.optionsClass = 'md:t-ml-4 md:t-mt-2 t-grid t-grid-cols-1 md:t-grid-cols-2-125';
456
- updates.innerClass = 't-flex t-items-start';
457
- updates.wrapperClass = '$reset t-flex t-cursor-pointer t-mb-3';
458
- return radio(updates)
459
- };
460
-
461
- const sbs2ItemRadio = (updates) => {
462
- updates.legendClass = 'legend-left t-pb-1 required';
463
- updates.fieldsetClass = '$reset side-by-side t-items-center';
464
- updates.optionsClass = 't-mt-1 t-grid t-grid-cols-1 md:t-grid-cols-2-125 t-items-center';
465
- updates.innerClass = 't-flex t-items-center';
466
- updates.optionClass = 't-pr-1';
467
- return radio(updates)
468
- };
469
-
470
- const sbsYesNoRadio = (updates) => {
471
- updates.options = ['Yes', 'No'];
472
- return sbs2ItemRadio(updates)
473
- };
474
-
475
- const verticalButtonRadio = (updates) => {
476
- updates.legendClass = 'legend-left';
477
- updates.fieldsetClass = '$reset t-flex t-justify-center t-items-center';
478
- if (typeof updates.optionsClass === 'undefined') {
479
- updates.optionsClass = 't-flex t-flex-col sm:t-flex-row t-justify-center t-my-3';
480
- }
481
- updates.optionClass = 'radiobtn t-my-2 sm:t-my-0 t-mx-2 md:t-mx-5';
482
- updates.wrapperClass = '$reset formkit-wrapper t-mb-0 t-flex t-items-center t-h-[100%]';
483
- updates.labelClass = 't-font-semibold t-text-[#1e448f] t-w-[100%]';
484
- updates.decoratorIcon = false;
485
- updates.messagesClass = 't-flex t-justify-center';
486
- return radio(updates)
487
- };
488
-
489
- const verticalYesNoRadio = (updates) => {
490
- updates.options = ['Yes', 'No'];
491
- updates.optionsClass = 't-flex t-justify-center t-my-3';
492
- return verticalButtonRadio(updates)
493
- };
494
-
495
- const select = (updates) => {
496
- if (updates.name && !updates.id) {
497
- updates.id = updates.name;
498
- }
499
- return merge({
500
- $formkit: 'select',
501
- placeholder: "Please Select",
502
- validation: 'required',
503
- validationMessages: {
504
- required: 'Field is required'
505
- },
506
- inputClass: 't-bg-white',
507
- labelClass: 'required'
508
- }, updates)
509
- };
510
-
511
- const sbsSelect = (updates) => {
512
- updates.labelClass = 'required';
513
- updates.wrapperClass = 'side-by-side t-items-center';
514
- updates.innerClass = 'select-height-content';
515
- updates.helpClass = 't-mt-2.5 md:t-text-right md:t-mt-[-5px]';
516
- return select(updates)
517
- };
518
-
519
- const text = (updates) => {
520
- if (updates.name && !updates.id) {
521
- updates.id = updates.name;
522
- }
523
- return merge({
524
- $formkit: 'text',
525
- validation: 'required',
526
- validationMessages: {
527
- required: 'Field is required'
528
- },
529
- labelClass: 'required'
530
- }, updates)
531
- };
532
-
533
- const sbsText = (updates) => {
534
- updates.wrapperClass = 'side-by-side t-items-center';
535
- return text(updates)
536
- };
537
-
538
- const textArea = (updates) => {
539
- if (updates.name && !updates.id) {
540
- updates.id = updates.name;
541
- }
542
- return merge({
543
- $formkit: 'textarea',
544
- rows: 5,
545
- maxlength: 500,
546
- validation: 'required',
547
- validationMessages: {
548
- required: 'Field is required'
549
- },
550
- innerClass: 't-max-w-xl',
551
- labelClass: 'required'
552
- }, updates)
553
- };
554
-
555
- const date = (updates) => {
556
- if (updates.name && !updates.id) {
557
- updates.id = updates.name;
558
- }
559
- return merge({
560
- $formkit: 'DatePicker',
561
- validation: 'required',
562
- validationMessages: {
563
- required: 'Field is required'
564
- },
565
- labelClass: 'required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500',
566
- innerClass: 't-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500'
195
+ labelClass: 'required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500',
196
+ innerClass: 't-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500'
567
197
  }, updates)
568
198
  };
569
199
 
@@ -917,7 +547,7 @@ const primaryInjury = (scope) => sbs2ColRadio({
917
547
  "Headaches",
918
548
  "Memory Loss",
919
549
  "Loss of Limb",
920
- "Other (describe on next page)"
550
+ "Not Sure or Other"
921
551
  ]
922
552
  });
923
553
 
@@ -1148,6 +778,43 @@ const findLastInput = (n) => {
1148
778
  return null
1149
779
  };
1150
780
 
781
+ const secureIconDefault = {
782
+ $el: 'div',
783
+ if: '$activeStep === $lastStep()',
784
+ attrs: {
785
+ class: 't-flex t-justify-center t-items-center t-text-sm t-text-gray-500'
786
+ },
787
+ children: [
788
+ {
789
+ $el: 'img',
790
+ attrs: {
791
+ loading: 'lazy',
792
+ alt: '',
793
+ style: {
794
+ border: 0
795
+ },
796
+ width: '25',
797
+ height: '25',
798
+ src: 'https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg',
799
+ }
800
+ },
801
+ {
802
+ $el: 'span',
803
+ children: 'Secure & Encrypted',
804
+ attrs: {
805
+ class: 't-pl-2 t-pt-1 t-font-medium'
806
+ }
807
+ }
808
+ ]
809
+ };
810
+
811
+ function secureIcon(updates) {
812
+ return merge(
813
+ secureIconDefault,
814
+ updates
815
+ )
816
+ }
817
+
1151
818
  function crossSellQuestionsStepHeadline(updates) {
1152
819
  return {
1153
820
  $el: 'h3',
@@ -1178,6 +845,16 @@ function verticalStepHeadline(updates) {
1178
845
  }
1179
846
  }
1180
847
 
848
+ function verticalStepSubHeadline(updates) {
849
+ return {
850
+ $el: 'h5',
851
+ children: updates.subheadline || '',
852
+ attrs: {
853
+ 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 || '')
854
+ }
855
+ }
856
+ }
857
+
1181
858
  function commentsStepHeadline(updates) {
1182
859
  return {
1183
860
  $el: 'h3',
@@ -1307,7 +984,7 @@ function sqstep(name, input, defaultHeadline, updates = {}) {
1307
984
  )
1308
985
  }
1309
986
 
1310
- function commentsWithBankruptcyV2(updates = {}) {
987
+ function commentsWithBankruptcy(updates = {}) {
1311
988
  return step(
1312
989
  'commentsWithBankruptcy',
1313
990
  [
@@ -1315,7 +992,7 @@ function commentsWithBankruptcyV2(updates = {}) {
1315
992
  comments({
1316
993
  label: typeof updates.label === 'undefined' ? DEFAULT_COMMENTS_LABEL : updates.label,
1317
994
  placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1318
- inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-40' : updates.inputClass,
995
+ inputClass: typeof updates.inputClass === 'undefined' ? '!t-h-32' : updates.inputClass,
1319
996
  }),
1320
997
  bankruptcyCrossSell(),
1321
998
  {
@@ -1330,11 +1007,11 @@ function commentsWithBankruptcyV2(updates = {}) {
1330
1007
  ],
1331
1008
  }
1332
1009
  ],
1333
- updates.nextOnEnter,
1010
+ false // nextOnEnter
1334
1011
  )
1335
1012
  }
1336
1013
 
1337
- function contactInfoTF(updates = {}) {
1014
+ function contactInfo(updates = {}) {
1338
1015
  return step(
1339
1016
  'contactInfo',
1340
1017
  [
@@ -1346,15 +1023,22 @@ function contactInfoTF(updates = {}) {
1346
1023
  TCPAConsent(),
1347
1024
  secureIcon()
1348
1025
  ],
1349
- updates.nextOnEnter
1026
+ false, // nextOnEnter
1350
1027
  )
1351
1028
  }
1352
1029
 
1353
- function firstAndLastV2(updates = {}) {
1030
+ function firstAndLastV3(updates = {}) {
1354
1031
  return step(
1355
1032
  'firstAndLast',
1356
1033
  [
1357
- firstAndLastStepHeadline(updates),
1034
+ firstAndLastStepHeadline({
1035
+ headline: updates.headline ?? 'Who is looking for help?',
1036
+ headlineClass: updates.headlineClass
1037
+ }),
1038
+ verticalStepSubHeadline({
1039
+ subheadline: updates.subheadline ?? 'Note: we never share info without consent',
1040
+ subheadlineClass: '!t-text-sm !t-text-gray-500'
1041
+ }),
1358
1042
  firstName(),
1359
1043
  lastName()
1360
1044
  ],
@@ -1507,184 +1191,959 @@ function childAndFamilyTOLP(updates = {}) {
1507
1191
  )
1508
1192
  }
1509
1193
 
1510
- function zipcode(updates = {}) {
1511
- return sqstep(
1512
- 'zipcode',
1513
- zipcodeCenter(),
1514
- 'Please verify your Zip Code',
1515
- updates
1516
- )
1517
- }
1194
+ function zipcode(updates = {}) {
1195
+ return sqstep(
1196
+ 'zipcode',
1197
+ zipcodeCenter(),
1198
+ 'Please verify your Zip Code',
1199
+ updates
1200
+ )
1201
+ }
1202
+
1203
+ function maritalStatus(updates = {}) {
1204
+ return sqstep(
1205
+ 'maritalStatus',
1206
+ maritalStatusCenter(),
1207
+ 'What is your marital status?',
1208
+ updates
1209
+ )
1210
+ }
1211
+
1212
+ function haveChildren(updates = {}) {
1213
+ return sqstep(
1214
+ 'haveChildren',
1215
+ haveChildrenCenter(),
1216
+ 'Do you have children?',
1217
+ updates
1218
+ )
1219
+ }
1220
+
1221
+ function childRelationship(updates = {}) {
1222
+ return sqstep(
1223
+ 'childRelationship',
1224
+ childRelationshipCenter(),
1225
+ 'Your relationship to the children:',
1226
+ updates
1227
+ )
1228
+ }
1229
+
1230
+ function childHome(updates = {}) {
1231
+ return sqstep(
1232
+ 'childHome',
1233
+ childHomeCenter(),
1234
+ 'Who do the children currently live with?',
1235
+ updates
1236
+ )
1237
+ }
1238
+
1239
+ function childPrimaryCaregiver(updates = {}) {
1240
+ return sqstep(
1241
+ 'childPrimaryCaregiver',
1242
+ childPrimaryCaregiverCenter(),
1243
+ 'Who is the primary caregiver?',
1244
+ updates
1245
+ )
1246
+ }
1247
+
1248
+ function haveAttorney(updates = {}) {
1249
+ return sqstep(
1250
+ 'haveAttorney',
1251
+ haveAttorneyCenter(),
1252
+ 'Already working with an attorney?',
1253
+ updates
1254
+ )
1255
+ }
1256
+
1257
+ function degreeOfInterest(updates = {}) {
1258
+ return sqstep(
1259
+ 'degreeOfInterest',
1260
+ degreeOfInterestCenter(),
1261
+ 'Could you pay if your issue could be resolved?',
1262
+ updates
1263
+ )
1264
+ }
1265
+
1266
+ function lawyerPaymentMethod(updates = {}) {
1267
+ return sqstep(
1268
+ 'lawyerPaymentMethod',
1269
+ lawyerPaymentMethodCenter(),
1270
+ 'How would you pay if a solution required it?',
1271
+ updates
1272
+ )
1273
+ }
1274
+
1275
+ // ------ Common
1276
+
1277
+ const formNavigation = () => ({
1278
+ $el: 'div',
1279
+ attrs: {
1280
+ class: 'step-nav'
1281
+ },
1282
+ children: [
1283
+ {
1284
+ $formkit: 'button',
1285
+ name: 'back_button',
1286
+ onClick: '$setPreviousStep($prevStepFunc($get(form)))',
1287
+ children: 'Back',
1288
+ style: {
1289
+ if: '$activeStep === $firstStep()',
1290
+ then: 'visibility: hidden;'
1291
+ }
1292
+ },
1293
+ {
1294
+ $formkit: 'button',
1295
+ name: 'next_button',
1296
+ onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
1297
+ children: {
1298
+ if: '$activeStep === $firstStep()',
1299
+ then: 'Start',
1300
+ else: 'Next'
1301
+ },
1302
+ outerClass: {
1303
+ if: '$activeStep === $lastStep()',
1304
+ then: 't-hidden',
1305
+ else: ''
1306
+ },
1307
+ style: {
1308
+ if: '$activeStep === $lastStep()',
1309
+ then: 'display: none;'
1310
+ }
1311
+ },
1312
+ {
1313
+ $formkit: 'submit',
1314
+ name: 'submit_button',
1315
+ label: 'Submit',
1316
+ if: '$activeStep === $lastStep()',
1317
+ style: {
1318
+ if: '$activeStep !== $lastStep()',
1319
+ then: 'display: none;'
1320
+ }
1321
+ }
1322
+ ]
1323
+ });
1324
+
1325
+ const formDetails = () => ({
1326
+ $el: 'pre',
1327
+ if: '$urlParam("fdbg", "") == 1',
1328
+ children: [
1329
+ {
1330
+ $el: 'pre',
1331
+ children: '$stringify( $get(form).value )',
1332
+ attrs: {
1333
+ class: 't-text-xs',
1334
+ style: 'overflow: scroll'
1335
+ }
1336
+ },
1337
+ {
1338
+ $el: 'pre',
1339
+ children: ['activeStep: ', '$activeStep'],
1340
+ attrs: {
1341
+ class: 't-text-xs',
1342
+ style: 'overflow: scroll'
1343
+ }
1344
+ },
1345
+ {
1346
+ $el: 'pre',
1347
+ children: ['stepHistory: ', '$stepHistory'],
1348
+ attrs: {
1349
+ class: 't-text-xs',
1350
+ style: 'overflow: scroll'
1351
+ }
1352
+ },
1353
+ {
1354
+ $el: 'pre',
1355
+ children: ['stepQueue: ', '$stepQueue'],
1356
+ attrs: {
1357
+ class: 't-text-xs',
1358
+ style: 'overflow: scroll'
1359
+ }
1360
+ },
1361
+ {
1362
+ $el: 'pre',
1363
+ children: ['steps: ', '$stepKeys()'],
1364
+ attrs: {
1365
+ class: 't-text-xs',
1366
+ style: 'overflow: scroll'
1367
+ }
1368
+ }
1369
+ ]
1370
+ });
1371
+
1372
+ const formPropDefaults = {
1373
+ type: 'form',
1374
+ id: 'form',
1375
+ config: { validationVisibility: 'submit' },
1376
+ onSubmit: '$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',
1377
+ plugins: '$plugins',
1378
+ actions: false,
1379
+ anchorElement: 'form-anchor',
1380
+ useLocalStorage: true,
1381
+ prepop: {
1382
+ fromURL: true
1383
+ },
1384
+ errorCodes: {
1385
+ 403: { message: "An Error Occurred", abort: false },
1386
+ 409: { abort: false },
1387
+ 429: "An Error Occurred",
1388
+ 504: { message: "An Error Occurred", abort: false },
1389
+ },
1390
+ formClass: '!t-max-w-[40rem]'
1391
+ };
1392
+
1393
+ function formProps(updates) {
1394
+ const props = merge(
1395
+ formPropDefaults,
1396
+ updates
1397
+ );
1398
+ if (props.formId && !props.name) {
1399
+ props.name = props.formId;
1400
+ }
1401
+ return props
1402
+ }
1403
+
1404
+ const metaDefaults = {
1405
+ tcpaLanguage: TCPA_LANGUAGE
1406
+ };
1407
+
1408
+ function metaProps(updates) {
1409
+ const data = merge(
1410
+ metaDefaults,
1411
+ updates
1412
+ );
1413
+ return {
1414
+ type: 'meta',
1415
+ data
1416
+ }
1417
+ }
1418
+
1419
+ function defaultMetaProps() {
1420
+ return metaProps({
1421
+ defaultCommentsPlaceholder: DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1422
+ commentsPlaceholders: TOLPCommentsPlaceholders,
1423
+ defaultFinalHeadline: DEFAULT_FINAL_HEADLINE,
1424
+ finalHeadlines: TOLPFinalHeadlines,
1425
+ defaultFinalSubHeadline: DEFAULT_FINAL_SUBHEADLINE,
1426
+ finalSubHeadlines: TOLPFinalSubHeadlines,
1427
+ })
1428
+ }
1429
+
1430
+ const dynamicSchemaNode = {
1431
+ $cmp: 'FormKitSchema',
1432
+ if: '$get(Type_Of_Legal_Problem).value',
1433
+ props: {
1434
+ schema: '$meta.dynamicSchema',
1435
+ data: '$buildData($meta)'
1436
+ }
1437
+ };
1438
+
1439
+ const formAnchorDefaults = {
1440
+ $el: 'div',
1441
+ children: [
1442
+ {
1443
+ $el: 'div',
1444
+ attrs: {
1445
+ id: 'form-anchor',
1446
+ class: 't-absolute',
1447
+ style: { top: '-30px', left: 0 }
1448
+ }
1449
+ }
1450
+ ],
1451
+ attrs: {
1452
+ class: 't-relative'
1453
+ }
1454
+ };
1455
+
1456
+ function formAnchor(updates) {
1457
+ return merge(
1458
+ formAnchorDefaults,
1459
+ updates
1460
+ )
1461
+ }
1462
+
1463
+ const progressBarDefaults = {
1464
+ $el: 'div',
1465
+ attrs: {
1466
+ class: 't-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center',
1467
+ style: {
1468
+ if: '$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())',
1469
+ then: 'display: none'
1470
+ },
1471
+ },
1472
+ children: [
1473
+ {
1474
+ $el: 'div',
1475
+ attrs: {
1476
+ class: 't-flex t-justify-center'
1477
+ },
1478
+ children: [
1479
+ {
1480
+ $el: 'span',
1481
+ attrs: {
1482
+ id: 'progress-bar-text',
1483
+ class: 't-text-sm t-mb-1'
1484
+ },
1485
+ children: [
1486
+ "0% Complete"
1487
+ ]
1488
+ },
1489
+ ]
1490
+ },
1491
+ {
1492
+ $el: 'div',
1493
+ attrs: {
1494
+ class: 't-bg-gray-100 t-w-9/12 t-rounded'
1495
+ },
1496
+ children: [
1497
+ {
1498
+ $el: 'div',
1499
+ attrs: {
1500
+ id: 'progress-bar',
1501
+ 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]',
1502
+ style: {
1503
+ transition: 'width 0.5s ease'
1504
+ },
1505
+ },
1506
+ }
1507
+ ]
1508
+ }
1509
+ ]
1510
+ };
1511
+
1512
+ function progressBar(updates) {
1513
+ return merge(
1514
+ progressBarDefaults,
1515
+ updates
1516
+ )
1517
+ }
1518
+
1519
+ function headlineDefaults(updates = {}) {
1520
+ return {
1521
+ $el: 'h1',
1522
+ attrs: {
1523
+ 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 || '')
1524
+ }
1525
+ }
1526
+ }
1527
+
1528
+ function headline(updates = {}) {
1529
+ return merge(
1530
+ headlineDefaults(updates),
1531
+ updates
1532
+ )
1533
+ }
1534
+
1535
+ function subHeadlineDefaults(updates = {}) {
1536
+ return {
1537
+ $el: 'h3',
1538
+ attrs: {
1539
+ 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 || '')
1540
+ }
1541
+ }
1542
+ }
1543
+
1544
+ function subHeadline(updates = {}) {
1545
+ return merge(
1546
+ subHeadlineDefaults(updates),
1547
+ updates
1548
+ )
1549
+ }
1550
+
1551
+ const hiddenInputsBase = [
1552
+ {
1553
+ $formkit: 'hidden',
1554
+ name: "gclid",
1555
+ value: null
1556
+ },
1557
+ {
1558
+ $formkit: 'hidden',
1559
+ name: "campaignid",
1560
+ value: null
1561
+ },
1562
+ {
1563
+ $formkit: 'hidden',
1564
+ name: "s",
1565
+ value: null
1566
+ }
1567
+ ];
1568
+
1569
+ const hiddenInputsLegal = [
1570
+ {
1571
+ $formkit: 'hidden',
1572
+ name: "vertical",
1573
+ value: "Legal"
1574
+ },
1575
+ {
1576
+ $formkit: 'hidden',
1577
+ name: "TCPA_Language",
1578
+ value: "$meta.tcpaLanguage"
1579
+ },
1580
+ ...hiddenInputsBase
1581
+ ];
1582
+
1583
+ const legalRedirectMapDefaults = {
1584
+ '*': LegalRedirectUrl()
1585
+ };
1586
+
1587
+
1588
+ function legalRedirectMap(updates) {
1589
+ return merge(
1590
+ legalRedirectMapDefaults,
1591
+ updates
1592
+ )
1593
+ }
1594
+
1595
+ const TOLPCommentsPlaceholders = {
1596
+ 'Adoption': 'Example: "I need help with adoption forms"',
1597
+ 'Asbestos and Mesothelioma': 'Example: "I was exposed to asbestos at work and would like to file a claim"',
1598
+ '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"',
1599
+ 'Bankruptcy': 'Example: "I need help filing for bankruptcy"',
1600
+ 'Birth Certificate and Name Change': 'Example: "Just married and would like to change my last name"',
1601
+ 'Business Lawyers': 'Example: "I need help incorporating a business" or "I would like a legal contract reviewed"',
1602
+ 'Child Custody and Support': 'Example: "Need help getting custody" or "Issues with child support payments"',
1603
+ 'Child Custody': 'Example: "Need help getting custody"',
1604
+ 'Child Support': 'Example: "Issues with child support payments"',
1605
+ 'Civil Rights and Discrimination': 'Example: "Police brutality" or "Coworker keeps harassing me"',
1606
+ 'Civil Lawsuit': 'Example: "A contractor took my money and never completed the job" or "I am being sued by a neighbor"',
1607
+ 'File a Lawsuit': 'Example: "A contractor took my money and never completed the job"',
1608
+ 'Defend a Lawsuit': 'Example: "I am being sued by a neighbor"',
1609
+ 'Consumer Lawyers': 'Example: "Someone committed fraud against me" or "A contractor took my money and never completed the job"',
1610
+ 'Copyrights and Trademarks': 'Example: "I would like to register a trademark or copyright a name"',
1611
+ 'Criminal and Felony': 'Example: "I was arrested for DUI and need legal defense" or "I am being charged with assault"',
1612
+ 'Debt and Collections': 'Example: "I would like to consolidate my debt" or "A collection agency is harassing me"',
1613
+ 'Divorce and Separation': 'Example: "I would like to file for an uncontested divorce"',
1614
+ 'DUI and DWI': 'Example: "I was arrested for DUI and need legal defense"',
1615
+ 'Elder Law': 'Example: "I would like help with Estate Planning" or "I need help with a guardianship"',
1616
+ 'Employment and Workplace': 'Example: "I was injured while on the job" or "My company is discriminating against me"',
1617
+ 'Expungement': 'Example: "I would like to file for an expungement and clear my record"',
1618
+ 'Family Issues': 'Example: "I need help with guardianship" or "I need a simple will created"',
1619
+ 'Foreclosure': 'Example: "I need help to avoid foreclosure on my house"',
1620
+ 'Guardianship': 'Example: "I need help with guardianship documents"',
1621
+ 'Harassment and Discrimination': 'Example: "I am being discriminated at work" or "My neighbor is harassing me"',
1622
+ 'Sexual Harassment': 'Example: "I am being sexually harassed by a coworker"',
1623
+ 'Workplace Harassment': 'Example: "My coworker is being aggressive towards me"',
1624
+ 'Non-Workplace Harassment': 'Example: "My neighbor is harassing me"',
1625
+ 'Workplace Discrimination': 'Example: "I am being discriminated at work based on my age"',
1626
+ 'Non-Workplace Discrimination': 'Example: "I am being discriminated against by a local official"',
1627
+ 'Identity Theft': 'Example: "Someone stole my identity and I need help fixing the issue"',
1628
+ 'Immigration and Visas': 'Example: "I need help filing for a visa" or "Help with a green card"',
1629
+ 'Insurance': 'Example: "I need help filing an insurance claim for damage to my house"',
1630
+ 'Landlord and Tenant': 'Example: "I need help to fight an eviction" or "I would like a lawyer to review a rental contract"',
1631
+ 'Lemon Law': 'Example: "I purchased a new vehicle that broke down already and seller will not assist"',
1632
+ '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"',
1633
+ 'Medical Malpractice': 'Example: "A doctor performed surgery on the wrong limb and I would like to file a lawsuit"',
1634
+ 'Patents and Intellectual Property': 'Example: "I would like to file for a patent" or "I need to copyright a name"',
1635
+ 'Personal Injury': 'Example: "I was bit by the neighbor\'s dog" or "I fell in the icy grocery store parking lot"',
1636
+ 'Power of Attorney': 'Example: "I need help with a limited or general power of attorney"',
1637
+ 'Probate and Estates': 'Example: "I need help with planning for my estate" or "A family member passed without a will in place"',
1638
+ 'Product Liability': 'Example: "My car battery caught on fire" or "I purchased a faulty product"',
1639
+ 'Property Damage': 'Example: "The neighbor\'s tree fell on my fence" or "My car was hit in the parking lot"',
1640
+ 'Real Estate': 'Example: "I need help with a quitclaim deed" or "I need a lawyer to review a purchase and sales agreement"',
1641
+ '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"',
1642
+ 'Tax and IRS': 'Example: "I need help fighting an IRS tax claim" or "I need audit defense"',
1643
+ 'Traffic and Tickets': 'Example: "I need help reinstating a supsended license" or "I would like to fight a traffic ticket"',
1644
+ 'Unemployment': 'Example: "I need help filing for unemployment benefits"',
1645
+ 'Victim of a Crime': 'Example: "I was assaulted in the store" or "I am being discriminated against at work"',
1646
+ 'Wills and Trusts': 'Example: "I need a simple will created" or "I would like guidance on creating a trust fund"',
1647
+ 'Workers Compensation': 'Example: "I was injured at work and would like to file for workers compensation benefits"',
1648
+ 'Wrongful Death': 'Example: "A family member was killed on the job and we need legal representation"',
1649
+ 'Wrongful Termination': 'Example: "I was fired by my employer without cause"',
1650
+ 'Not Sure or Other': 'Example: "I was involved in a car accident" or "I need help setting up power of attorney"'
1651
+ };
1652
+
1653
+ const TOLPFinalHeadlines = {
1654
+ // 'Adoption': '',
1655
+ };
1656
+
1657
+ const TOLPFinalSubHeadlines = {
1658
+ 'Adoption': 'You may benefit from speaking with an adoption professional. Please verify your contact information.',
1659
+ // 'Asbestos and Mesothelioma': '',
1660
+ 'Auto and Car Accidents': 'You may benefit from speaking with an accident professional. Please verify your contact information.',
1661
+ 'Bankruptcy': 'You may benefit from speaking with a bankruptcy professional. Please verify your contact information.',
1662
+ // 'Birth Certificate and Name Change': '',
1663
+ // 'Business Lawyers': '',
1664
+ // 'Child Custody and Support': '',
1665
+ // 'Civil Rights and Discrimination': '',
1666
+ // 'Civil Lawsuit': '',
1667
+ // 'Consumer Lawyers': '',
1668
+ 'Copyrights and Trademarks': 'You may benefit from speaking with a copyright and trademark professional. Please verify your contact information.',
1669
+ // 'Criminal and Felony': '',
1670
+ // 'Debt and Collections': '',
1671
+ 'Divorce and Separation': 'You may benefit from speaking with a divorce professional. Please verify your contact information.',
1672
+ 'DUI and DWI': 'You may benefit from speaking with a DUI professional. Please verify your contact information.',
1673
+ 'Elder Law': 'You may benefit from speaking with an elder law professional. Please verify your contact information.',
1674
+ // 'Employment and Workplace': '',
1675
+ // 'Expungement': '',
1676
+ // 'Family Issues': '',
1677
+ 'Foreclosure': 'You may benefit from speaking with a foreclosure professional. Please verify your contact information.',
1678
+ 'Guardianship': 'You may benefit from speaking with a guardianship professional. Please verify your contact information.',
1679
+ // 'Harassment and Discrimination': '',
1680
+ // 'Identity Theft': '',
1681
+ 'Immigration and Visas': 'You may benefit from speaking with a immigration professional. Please verify your contact information.',
1682
+ // 'Insurance': '',
1683
+ 'Landlord and Tenant': 'You may benefit from speaking with a landlord and tenant legal professional. Please verify your contact information.',
1684
+ // 'Lemon Law': '',
1685
+ 'Long Term Disability': 'You may benefit from speaking with a disability legal professional. Please verify your contact information.',
1686
+ 'Medical Malpractice': 'You may benefit from speaking with a malpractice professional. Please verify your contact information.',
1687
+ 'Patents and Intellectual Property': 'You may benefit from speaking with a patent professional. Please verify your contact information.',
1688
+ 'Personal Injury': 'You may benefit from speaking with a personal injury professional. Please verify your contact information.',
1689
+ // 'Power of Attorney': '',
1690
+ 'Probate and Estates': 'You may benefit from speaking with a probate and estate professional. Please verify your contact information.',
1691
+ // 'Product Liability': '',
1692
+ // 'Property Damage': '',
1693
+ 'Real Estate': 'You may benefit from speaking with a real estate professional. Please verify your contact information.',
1694
+ 'Social Security Disability and Insurance': 'You may benefit from speaking with an SSDI professional. Please verify your contact information.',
1695
+ 'Tax and IRS': 'You may benefit from speaking with a tax professional. Please verify your contact information.',
1696
+ // 'Traffic and Tickets': '',
1697
+ 'Unemployment': 'You may benefit from speaking with an unemployment professional. Please verify your contact information.',
1698
+ // 'Victim of a Crime': '',
1699
+ // 'Wills and Trusts': '',
1700
+ 'Workers Compensation': 'You may benefit from speaking with a workers compensation professional. Please verify your contact information.',
1701
+ // 'Wrongful Death': '',
1702
+ // 'Wrongful Termination': '',
1703
+ // 'Not Sure or Other': ''
1704
+ // 'Sexual Harassment': '',
1705
+ // 'Workplace Harassment': '',
1706
+ // 'Non-Workplace Harassment': '',
1707
+ // 'Workplace Discrimination': '',
1708
+ // 'Non-Workplace Discrimination': '',
1709
+ };
1710
+
1711
+ const nextStepsLegalDefault = [
1712
+ 'haveAttorney',
1713
+ 'degreeOfInterest',
1714
+ 'commentsWithBankruptcy',
1715
+ 'zipcode',
1716
+ 'legalCrossSells',
1717
+ 'firstAndLast',
1718
+ 'contactInfo',
1719
+ ];
1518
1720
 
1519
- function maritalStatus(updates = {}) {
1520
- return sqstep(
1521
- 'maritalStatus',
1522
- maritalStatusCenter(),
1523
- 'What is your marital status?',
1524
- updates
1525
- )
1526
- }
1721
+ const nextStepsLegalDefaultLPM = [
1722
+ 'haveAttorney',
1723
+ 'degreeOfInterest',
1724
+ 'lawyerPaymentMethod',
1725
+ 'commentsWithBankruptcy',
1726
+ 'zipcode',
1727
+ 'legalCrossSells',
1728
+ 'firstAndLast',
1729
+ 'contactInfo',
1730
+ ];
1527
1731
 
1528
- function haveChildren(updates = {}) {
1529
- return sqstep(
1530
- 'haveChildren',
1531
- haveChildrenCenter(),
1532
- 'Do you have children?',
1533
- updates
1534
- )
1535
- }
1732
+ const nextStepsLegalNoDOI = [
1733
+ 'haveAttorney',
1734
+ 'commentsWithBankruptcy',
1735
+ 'zipcode',
1736
+ 'legalCrossSells',
1737
+ 'firstAndLast',
1738
+ 'contactInfo',
1739
+ ];
1536
1740
 
1537
- function childRelationship(updates = {}) {
1538
- return sqstep(
1539
- 'childRelationship',
1540
- childRelationshipCenter(),
1541
- 'Your relationship to the children:',
1542
- updates
1543
- )
1544
- }
1741
+ const nextStepsLegalNoHA = [
1742
+ 'degreeOfInterest',
1743
+ 'commentsWithBankruptcy',
1744
+ 'zipcode',
1745
+ 'legalCrossSells',
1746
+ 'firstAndLast',
1747
+ 'contactInfo',
1748
+ ];
1545
1749
 
1546
- function childHome(updates = {}) {
1547
- return sqstep(
1548
- 'childHome',
1549
- childHomeCenter(),
1550
- 'Who do the children currently live with?',
1551
- updates
1552
- )
1553
- }
1750
+ const nextStepsMapGeneralLegal = {
1751
+ 'Type_Of_Legal_Problem': {
1752
+ 'Adoption': [
1753
+ 'maritalStatus',
1754
+ 'haveChildren',
1755
+ ...nextStepsLegalDefaultLPM
1756
+ ],
1757
+ 'Asbestos and Mesothelioma': [
1758
+ 'incidentDate',
1759
+ 'doctorTreatment',
1760
+ ...nextStepsLegalDefault
1761
+ ],
1762
+ 'Auto and Car Accidents': [
1763
+ 'incidentDate',
1764
+ 'atFault',
1765
+ 'primaryInjury',
1766
+ 'doctorTreatment',
1767
+ 'policeReportFiled',
1768
+ ...nextStepsLegalNoDOI
1769
+ ],
1770
+ 'Bankruptcy': [
1771
+ 'totalMonthlyIncome',
1772
+ 'totalDebt',
1773
+ 'ownRealEstate',
1774
+ 'valueOfAssets',
1775
+ ...nextStepsLegalDefault
1776
+ ],
1777
+ 'Business Lawyers': [
1778
+ 'businessServices',
1779
+ 'businessType',
1780
+ 'numEmployeesOfBusiness',
1781
+ ...nextStepsLegalDefault
1782
+ ],
1783
+ 'Child Custody': [
1784
+ 'childRelationship',
1785
+ 'childHome',
1786
+ 'childPrimaryCaregiver',
1787
+ ...nextStepsLegalDefaultLPM
1788
+ ],
1789
+ 'Child Support': [
1790
+ 'childRelationship',
1791
+ 'childHome',
1792
+ 'childPrimaryCaregiver',
1793
+ ...nextStepsLegalDefaultLPM
1794
+ ],
1795
+ 'Civil Rights and Discrimination': [
1796
+ 'civilRightsType',
1797
+ ...nextStepsLegalDefault
1798
+ ],
1799
+ 'Civil Lawsuit': [
1800
+ 'civilDefense',
1801
+ 'lawsuitOtherParty',
1802
+ ...nextStepsLegalDefault
1803
+ ],
1804
+ 'File a Lawsuit': [
1805
+ 'civilLawsuitTOLPDisplay',
1806
+ 'lawsuitOtherParty',
1807
+ ...nextStepsLegalDefault
1808
+ ],
1809
+ 'Defend a Lawsuit': [
1810
+ 'lawsuitOtherParty',
1811
+ ...nextStepsLegalDefault
1812
+ ],
1813
+ 'Consumer Lawyers': [
1814
+ 'consumerLawyerType',
1815
+ 'incidentDate',
1816
+ 'lawsuitOtherParty',
1817
+ ...nextStepsLegalDefault
1818
+ ],
1819
+ 'Criminal and Felony': [
1820
+ 'criminalTOLPDisplay',
1821
+ 'crimeCommittedDate',
1822
+ 'roleInMatterCriminal',
1823
+ 'pendingCharges',
1824
+ ...nextStepsLegalDefaultLPM
1825
+ ],
1826
+ 'Debt and Collections': [
1827
+ 'totalMonthlyIncome',
1828
+ 'totalDebt',
1829
+ 'ownRealEstate',
1830
+ 'valueOfAssets',
1831
+ ...nextStepsLegalDefault
1832
+ ],
1833
+ 'Divorce and Separation': [
1834
+ 'maritalStatus',
1835
+ 'haveChildren',
1836
+ ...nextStepsLegalDefaultLPM
1837
+ ],
1838
+ 'DUI and DWI': [
1839
+ 'incidentDate',
1840
+ 'priorAlcoholOffenses',
1841
+ 'typeOfAlcoholTest',
1842
+ 'bloodContentAlcoholTest',
1843
+ 'pendingCharges',
1844
+ ...nextStepsLegalDefault
1845
+ ],
1846
+ 'Employment and Workplace': [
1847
+ 'employmentAndWorkplaceTOLPDisplay',
1848
+ 'numEmployeesOfBusiness',
1849
+ 'employerType',
1850
+ 'employeeAtCompany',
1851
+ ...nextStepsLegalDefault
1852
+ ],
1853
+ 'Expungement': [
1854
+ 'incidentDate',
1855
+ 'criminalChargeType',
1856
+ ...nextStepsLegalDefaultLPM
1857
+ ],
1858
+ 'Family Issues': [
1859
+ 'maritalStatus',
1860
+ 'haveChildren',
1861
+ ...nextStepsLegalDefaultLPM
1862
+ ],
1863
+ 'Foreclosure': [
1864
+ 'ownRealEstate',
1865
+ 'typeOfProperty',
1866
+ 'amountPaymentsPastDue',
1867
+ 'loanAmount',
1868
+ 'defaultNotice',
1869
+ ...nextStepsLegalDefault
1870
+ ],
1871
+ 'Guardianship': [
1872
+ 'maritalStatus',
1873
+ 'haveChildren',
1874
+ ...nextStepsLegalDefaultLPM
1875
+ ],
1876
+ 'Immigration and Visas': [
1877
+ 'countryOfCitizenship',
1878
+ 'immigrationLocation',
1879
+ 'immigrationEntry',
1880
+ 'immigrationType',
1881
+ 'immigrationStatus',
1882
+ 'immigrationDetails',
1883
+ ...nextStepsLegalDefault
1884
+ ],
1885
+ 'Landlord and Tenant': [
1886
+ 'landlordTenantIssue',
1887
+ 'landlordTenantParty',
1888
+ ...nextStepsLegalDefault
1889
+ ],
1890
+ 'Lemon Law': [
1891
+ 'incidentDate',
1892
+ 'lawsuitOtherParty',
1893
+ ...nextStepsLegalDefault
1894
+ ],
1895
+ 'Long Term Disability': [
1896
+ 'applicantOccupation',
1897
+ 'applicantAge',
1898
+ 'applicantLTDisabilityPolicy',
1899
+ 'applicantDisabilityHowObtain',
1900
+ 'applicantPreviouslyAppliedLtdBenefits',
1901
+ 'applicantReceivedDisabilityBenefits',
1902
+ 'applicantMonthlySalary',
1903
+ ...nextStepsLegalNoDOI
1904
+ ],
1905
+ 'Medical Malpractice': [
1906
+ 'incidentDate',
1907
+ 'claimStatus',
1908
+ 'doctorTreatment',
1909
+ 'medicalMalpracticeInjuries',
1910
+ ...nextStepsLegalDefault
1911
+ ],
1912
+ 'Patents and Intellectual Property': [
1913
+ 'patentAssistanceType',
1914
+ 'patentFor',
1915
+ ...nextStepsLegalDefault
1916
+ ],
1917
+ 'Personal Injury': [
1918
+ 'incidentDate',
1919
+ 'claimStatus',
1920
+ 'atFault',
1921
+ 'primaryInjury',
1922
+ 'doctorTreatment',
1923
+ ...nextStepsLegalNoDOI
1924
+ ],
1925
+ 'Probate and Estates': [
1926
+ 'valueOfAssets',
1927
+ 'typeOfAssets',
1928
+ 'roleInMatterProbate',
1929
+ 'estateLegalServicesNeeded',
1930
+ ...nextStepsLegalDefault
1931
+ ],
1932
+ 'Property Damage': [
1933
+ 'realEstateArea',
1934
+ 'wouldLikeLawyerTo',
1935
+ ...nextStepsLegalDefault
1936
+ ],
1937
+ 'Real Estate': [
1938
+ 'realEstateTOLPDisplay',
1939
+ 'realEstateArea',
1940
+ 'wouldLikeLawyerTo',
1941
+ ...nextStepsLegalDefault
1942
+ ],
1943
+ 'Social Security Disability and Insurance': [
1944
+ 'applicantAge',
1945
+ 'disabilityConditionStopWork',
1946
+ 'disabilityWorkHistory',
1947
+ 'socialSecurityDisabilityReceivingBenefits',
1948
+ 'doctorTreatment',
1949
+ ...nextStepsLegalNoDOI
1950
+ ],
1951
+ 'Tax and IRS': [
1952
+ 'totalDebt',
1953
+ 'taxProblemDetails',
1954
+ 'taxLevel',
1955
+ 'taxIssueType',
1956
+ ...nextStepsLegalDefault
1957
+ ],
1958
+ 'Traffic and Tickets': [
1959
+ 'driversLicenseType',
1960
+ 'trafficViolations',
1961
+ 'haveCourtDate',
1962
+ ...nextStepsLegalDefault
1963
+ ],
1964
+ 'Unemployment': [
1965
+ 'numEmployeesOfBusiness',
1966
+ 'employerType',
1967
+ ...nextStepsLegalNoHA
1968
+ ],
1969
+ 'Victim of a Crime': [
1970
+ 'crimeCommittedDate',
1971
+ 'roleInMatterCriminal',
1972
+ 'pendingCharges',
1973
+ ...nextStepsLegalDefaultLPM
1974
+ ],
1975
+ 'Wills and Trusts': [
1976
+ 'valueOfAssets',
1977
+ 'typeOfAssets',
1978
+ 'roleInMatterProbate',
1979
+ 'estateLegalServicesNeeded',
1980
+ ...nextStepsLegalDefault
1981
+ ],
1982
+ 'Workers Compensation': [
1983
+ 'incidentDate',
1984
+ 'claimStatus',
1985
+ 'primaryInjury',
1986
+ 'causeOfInjury',
1987
+ 'doctorTreatment',
1988
+ ...nextStepsLegalNoDOI
1989
+ ],
1990
+ 'Workplace Harassment': [
1991
+ 'numEmployeesOfBusiness',
1992
+ 'employerType',
1993
+ 'employeeAtCompany',
1994
+ ...nextStepsLegalDefault
1995
+ ],
1996
+ 'Workplace Discrimination': [
1997
+ 'numEmployeesOfBusiness',
1998
+ 'employerType',
1999
+ 'employeeAtCompany',
2000
+ ...nextStepsLegalDefault
2001
+ ],
2002
+ 'Wrongful Death': [
2003
+ 'incidentDate',
2004
+ 'relationshipToVictim',
2005
+ 'criminalChargesFiled',
2006
+ 'causeOfDeath',
2007
+ ...nextStepsLegalNoDOI
2008
+ ],
2009
+ 'Wrongful Termination': [
2010
+ 'numEmployeesOfBusiness',
2011
+ 'employerType',
2012
+ ...nextStepsLegalDefault
2013
+ ],
2014
+ },
2015
+ '*': nextStepsLegalDefault
2016
+ };
1554
2017
 
1555
- function childPrimaryCaregiver(updates = {}) {
1556
- return sqstep(
1557
- 'childPrimaryCaregiver',
1558
- childPrimaryCaregiverCenter(),
1559
- 'Who is the primary caregiver?',
1560
- updates
1561
- )
1562
- }
2018
+ // function filterMapByKey(obj, keyList) {
2019
+ // return Object.fromEntries(
2020
+ // Object.entries(obj).filter(([key]) => keyList.includes(key))
2021
+ // );
2022
+ // }
2023
+
2024
+ // export function filteredNextStepsMapLegal(keyList) {
2025
+ // const res = { Type_Of_Legal_Problem: filterMapByKey(nextStepsMapGeneralLegal["Type_Of_Legal_Problem"], keyList) }
2026
+ // res["*"] = nextStepsMapGeneralLegal["*"]
2027
+ // return res
2028
+ // }
2029
+
2030
+ const TOLPNextSteps = nextStepsMapGeneralLegal["Type_Of_Legal_Problem"];
2031
+
2032
+ const nextStepsMapChildAndFamily = {
2033
+ 'Type_Of_Legal_Problem': {
2034
+ 'Child Custody': TOLPNextSteps["Child Custody"],
2035
+ 'Child Support': TOLPNextSteps["Child Support"],
2036
+ 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2037
+ },
2038
+ '*': TOLPNextSteps["Family Issues"]
2039
+ };
1563
2040
 
1564
- function haveAttorney(updates = {}) {
1565
- return sqstep(
1566
- 'haveAttorney',
1567
- haveAttorneyCenter(),
1568
- 'Already working with an attorney?',
1569
- updates
1570
- )
1571
- }
2041
+ ({
2042
+ 'Civil_Defense': {
2043
+ 'Yes': TOLPNextSteps["Defend a Lawsuit"],
2044
+ 'No': TOLPNextSteps["File a Lawsuit"],
2045
+ },
2046
+ '*': [
2047
+ 'lawsuitOtherParty',
2048
+ ...nextStepsLegalDefault
2049
+ ]
2050
+ });
1572
2051
 
1573
- function degreeOfInterest(updates = {}) {
1574
- return sqstep(
1575
- 'degreeOfInterest',
1576
- degreeOfInterestCenter(),
1577
- 'Could you pay if your issue could be resolved?',
1578
- updates
1579
- )
1580
- }
2052
+ ({
2053
+ 'Type_Of_Legal_Problem': {
2054
+ 'Defend a Lawsuit': TOLPNextSteps["Defend a Lawsuit"],
2055
+ 'File a Lawsuit': TOLPNextSteps["File a Lawsuit"],
2056
+ },
2057
+ '*': [
2058
+ 'lawsuitOtherParty',
2059
+ ...nextStepsLegalDefault
2060
+ ]
2061
+ });
1581
2062
 
1582
- function lawyerPaymentMethod(updates = {}) {
1583
- return sqstep(
1584
- 'lawyerPaymentMethod',
1585
- lawyerPaymentMethodCenter(),
1586
- 'How would you pay if a solution required it?',
1587
- updates
1588
- )
1589
- }
2063
+ ({
2064
+ 'Type_Of_Legal_Problem_Display': {
2065
+ 'Automobile Accident': TOLPNextSteps["Auto and Car Accidents"],
2066
+ 'Contract Disputes': TOLPNextSteps["Business Lawyers"],
2067
+ 'Dog Bite': TOLPNextSteps["Personal Injury"],
2068
+ 'Employment and Workplace': TOLPNextSteps["Employment and Workplace"],
2069
+ 'Fraud': TOLPNextSteps["Consumer Lawyers"],
2070
+ 'Medical Malpractice': TOLPNextSteps["Medical Malpractice"],
2071
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2072
+ 'Property Damage': TOLPNextSteps["Property Damage"],
2073
+ 'Real Estate': TOLPNextSteps["Real Estate"],
2074
+ 'Not Sure or Other': nextStepsMapGeneralLegal["*"],
2075
+ },
2076
+ '*': [
2077
+ 'lawsuitOtherParty',
2078
+ ...nextStepsLegalDefault
2079
+ ]
2080
+ });
1590
2081
 
1591
- const formNavigationV2 = () => ({
1592
- $el: 'div',
1593
- attrs: {
1594
- class: 'step-nav'
2082
+ ({
2083
+ 'Type_Of_Legal_Problem_Display': {
2084
+ 'Wrongful Termination': TOLPNextSteps["Wrongful Termination"],
2085
+ 'Workers Compensation': TOLPNextSteps["Workers Compensation"],
2086
+ 'Personal Injury': TOLPNextSteps["Personal Injury"],
2087
+ 'Unemployment': TOLPNextSteps["Unemployment"],
1595
2088
  },
1596
- children: [
1597
- {
1598
- $formkit: 'button',
1599
- name: 'back_button',
1600
- onClick: '$setPreviousStep($prevStepFunc($get(form)))',
1601
- children: 'Back',
1602
- style: {
1603
- if: '$activeStep === $firstStep()',
1604
- then: 'visibility: hidden;'
1605
- }
1606
- },
1607
- {
1608
- $formkit: 'button',
1609
- name: 'next_button',
1610
- onClick: '$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))',
1611
- children: {
1612
- if: '$activeStep === $firstStep()',
1613
- then: 'Start',
1614
- else: 'Next'
1615
- },
1616
- outerClass: {
1617
- if: '$activeStep === $lastStep()',
1618
- then: 't-hidden',
1619
- else: ''
1620
- },
1621
- style: {
1622
- if: '$activeStep === $lastStep()',
1623
- then: 'display: none;'
1624
- }
1625
- },
1626
- {
1627
- $formkit: 'submit',
1628
- name: 'submit_button',
1629
- label: 'Submit',
1630
- if: '$activeStep === $lastStep()',
1631
- style: {
1632
- if: '$activeStep !== $lastStep()',
1633
- then: 'display: none;'
1634
- }
1635
- }
2089
+ '*': [
2090
+ 'numEmployeesOfBusiness',
2091
+ 'employerType',
2092
+ 'employeeAtCompany',
2093
+ ...nextStepsLegalDefault
1636
2094
  ]
1637
2095
  });
1638
2096
 
1639
- const formDetails = () => ({
1640
- $el: 'pre',
1641
- if: '$urlParam("fdbg", "") == 1',
1642
- children: [
1643
- {
1644
- $el: 'pre',
1645
- children: '$stringify( $get(form).value )',
1646
- attrs: {
1647
- class: 't-text-xs',
1648
- style: 'overflow: scroll'
1649
- }
1650
- },
1651
- {
1652
- $el: 'pre',
1653
- children: ['activeStep: ', '$activeStep'],
1654
- attrs: {
1655
- class: 't-text-xs',
1656
- style: 'overflow: scroll'
1657
- }
1658
- },
1659
- {
1660
- $el: 'pre',
1661
- children: ['stepHistory: ', '$stepHistory'],
1662
- attrs: {
1663
- class: 't-text-xs',
1664
- style: 'overflow: scroll'
1665
- }
1666
- },
1667
- {
1668
- $el: 'pre',
1669
- children: ['stepQueue: ', '$stepQueue'],
1670
- attrs: {
1671
- class: 't-text-xs',
1672
- style: 'overflow: scroll'
1673
- }
1674
- },
1675
- {
1676
- $el: 'pre',
1677
- children: ['steps: ', '$stepKeys()'],
1678
- attrs: {
1679
- class: 't-text-xs',
1680
- style: 'overflow: scroll'
1681
- }
1682
- }
2097
+ ({
2098
+ 'Type_Of_Legal_Problem_Display': {
2099
+ 'Foreclosure': TOLPNextSteps["Foreclosure"],
2100
+ 'Landlord and Tenant': TOLPNextSteps["Landlord and Tenant"],
2101
+ 'Wills, Trusts, and Estates': TOLPNextSteps["Wills and Trusts"],
2102
+ 'Property Damage': TOLPNextSteps['Property Damage'],
2103
+ },
2104
+ '*': [
2105
+ 'realEstateArea',
2106
+ 'wouldLikeLawyerTo',
2107
+ ...nextStepsLegalDefault
1683
2108
  ]
1684
2109
  });
1685
2110
 
2111
+ const meta = defaultMetaProps();
2112
+
2113
+ meta.data.dynamicSchema = [
2114
+ zipcode(),
2115
+ maritalStatus(),
2116
+ haveChildren(),
2117
+ childRelationship(),
2118
+ childHome(),
2119
+ childPrimaryCaregiver(),
2120
+ haveAttorney(),
2121
+ degreeOfInterest(),
2122
+ lawyerPaymentMethod(),
2123
+ commentsWithBankruptcy({
2124
+ label: null,
2125
+ headline: 'Please briefly describe your situation:',
2126
+ headlineClass: '!t-text-dark',
2127
+ }),
2128
+ legalCrossSells({
2129
+ headlineClass: '!t-text-dark'
2130
+ }),
2131
+ // Note: this is purposefully limited to a subset of values
2132
+ // that could show up in the Legal_CrossSells input because
2133
+ // this form only allows a handful of TOLPs on stage 1!
2134
+ autoAndCarAccidentCrossSellQuestions(),
2135
+ personalInjuryCrossSellQuestions(),
2136
+ duiAndDWICrossSellQuestions(),
2137
+ ssdiCrossSellQuestions(),
2138
+ powerOfAttorneyCrossSellQuestions(),
2139
+ willsAndTrustsCrossSellQuestions(),
2140
+ firstAndLastV3({
2141
+ headlineClass: '!t-text-dark'
2142
+ }),
2143
+ ];
2144
+
1686
2145
  const schema = [
1687
- defaultMetaProps(),
2146
+ meta,
1688
2147
  formAnchor(),
1689
2148
  {
1690
2149
  $cmp: 'FormKit',
@@ -1710,91 +2169,11 @@ const schema = [
1710
2169
  },
1711
2170
  children: [
1712
2171
  childAndFamilyTOLP({
1713
- nextStepMap: {
1714
- 'Type_Of_Legal_Problem': {
1715
- 'Child Custody': [
1716
- 'childRelationship',
1717
- 'childHome',
1718
- 'childPrimaryCaregiver',
1719
- 'haveAttorney',
1720
- 'degreeOfInterest',
1721
- 'commentsWithBankruptcy',
1722
- 'zipcode',
1723
- 'legalCrossSells',
1724
- 'firstAndLast',
1725
- 'contactInfo',
1726
- ],
1727
- 'Child Support': [
1728
- 'childRelationship',
1729
- 'childHome',
1730
- 'childPrimaryCaregiver',
1731
- 'haveAttorney',
1732
- 'degreeOfInterest',
1733
- 'commentsWithBankruptcy',
1734
- 'zipcode',
1735
- 'legalCrossSells',
1736
- 'firstAndLast',
1737
- 'contactInfo',
1738
- ],
1739
- 'Not Sure or Other': [
1740
- 'haveAttorney',
1741
- 'degreeOfInterest',
1742
- 'commentsWithBankruptcy',
1743
- 'zipcode',
1744
- 'legalCrossSells',
1745
- 'firstAndLast',
1746
- 'contactInfo',
1747
- ]
1748
- },
1749
- '*': [
1750
- 'maritalStatus',
1751
- 'haveChildren',
1752
- 'haveAttorney',
1753
- 'degreeOfInterest',
1754
- 'lawyerPaymentMethod',
1755
- 'commentsWithBankruptcy',
1756
- 'zipcode',
1757
- 'legalCrossSells',
1758
- 'firstAndLast',
1759
- 'contactInfo',
1760
- ]
1761
- }
1762
- }),
1763
- zipcode(),
1764
- maritalStatus(),
1765
- haveChildren(),
1766
- childRelationship(),
1767
- childHome(),
1768
- childPrimaryCaregiver(),
1769
- haveAttorney(),
1770
- degreeOfInterest(),
1771
- lawyerPaymentMethod(),
1772
- commentsWithBankruptcyV2({
1773
- nextOnEnter: false,
1774
- label: null,
1775
- headline: 'Please briefly describe your situation:',
1776
- headlineClass: '!t-text-dark',
1777
- inputClass: '!t-h-32'
1778
- }),
1779
- legalCrossSells({
1780
- headlineClass: '!t-text-dark'
1781
- }),
1782
- // Note: this is purposefully limited to a subset of values
1783
- // that could show up in the Legal_CrossSells input because
1784
- // this form only allows a handful of TOLPs on stage 1!
1785
- autoAndCarAccidentCrossSellQuestions(),
1786
- personalInjuryCrossSellQuestions(),
1787
- duiAndDWICrossSellQuestions(),
1788
- ssdiCrossSellQuestions(),
1789
- powerOfAttorneyCrossSellQuestions(),
1790
- willsAndTrustsCrossSellQuestions(),
1791
- firstAndLastV2({
1792
- headlineClass: '!t-text-dark'
1793
- }),
1794
- contactInfoTF({
1795
- nextOnEnter: false
2172
+ nextStepMap: nextStepsMapChildAndFamily
1796
2173
  }),
1797
- formNavigationV2(),
2174
+ dynamicSchemaNode,
2175
+ contactInfo(),
2176
+ formNavigation(),
1798
2177
  formDetails()
1799
2178
  ]
1800
2179
  }