bhl-forms 0.12.2 → 0.12.3

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.
@@ -2,11 +2,6 @@ function merge() {
2
2
  return Object.assign({}, ...arguments)
3
3
  }
4
4
 
5
- // Default is zone 4 for post-form redirect
6
- function RedirectUrl(domain, vertical, category, zone = 4) {
7
- return 'https://listings.' + domain + '/api/v1/redirect?zone_id=' + zone + '&sub_id=${properties.vid}&vertical=' + encodeURIComponent(vertical) + '&category=' + encodeURIComponent(category)
8
- }
9
-
10
5
  function LegalRedirectUrl() {
11
6
  return 'https://listings.ziplawyer.com/api/v1/redirect?zone_id=4&vertical=Legal&category=${properties.Type_Of_Legal_Problem}&Degree_Of_Interest=${properties.Degree_Of_Interest}&zip_code=${properties.Zip}&sub_id=${properties.vid}'
12
7
  }
@@ -22,90 +17,6 @@ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC =
22
17
  '$getKey($meta, "finalSubHeadlines." + ($get(Type_Of_Legal_Problem).value || $get(Category).value), $meta.defaultFinalSubHeadline)';
23
18
  const TCPA_LANGUAGE_LEGAL =
24
19
  'By checking this box, I agree to the Terms of Use and consent to be contacted by <a href="/providers" target="_blank">lawyers, lawyer networks, and partners</a> of this website using live, autodialed, pre-recorded, or artificial voice calls and text messages, at any time including before 8 AM or after 9 PM local time. Your consent is not required as a condition of purchasing any goods or services. To submit this request without this consent, call 878-213-4937.';
25
- const defaultLegalImprovementCrossSells = {
26
- "Auto and Car Accidents": "Injured in a Car Accident",
27
- "Personal Injury": "Personal or Workplace Injury",
28
- "DUI and DWI": "Involved in a DUI/DWI",
29
- "Wills and Trusts": "Need a Will or Trust",
30
- "Power of Attorney": "Power of Attorney Documents",
31
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
32
- };
33
- const CROSS_SELL_OPTION_MAP_LEGAL = {
34
- // Values can be a list or a map of value -> display value
35
- "Auto and Car Accidents": {
36
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
37
- "Wills and Trusts": "Need a Will or Trust",
38
- "Workers Compensation": "Workplace Injury",
39
- "Power of Attorney": "Power of Attorney Documents",
40
- "Divorce and Separation": "Need a Divorce or Separation",
41
- "Child Custody": "Need help with Child Custody",
42
- },
43
- "Personal Injury": {
44
- "DUI and DWI": "Involved in a DUI/DWI",
45
- "Wills and Trusts": "Need a Will or Trust",
46
- "Power of Attorney": "Power of Attorney Documents",
47
- "Divorce and Separation": "Need a Divorce or Separation",
48
- "Child Custody": "Need help with Child Custody",
49
- // TODO add one more?
50
- },
51
- "Workers Compensation": {
52
- "Auto and Car Accidents": "Involved in a Car Accident",
53
- "Wills and Trusts": "Need a Will or Trust",
54
- "Power of Attorney": "Power of Attorney Documents",
55
- "Divorce and Separation": "Need a Divorce or Separation",
56
- "Child Custody": "Need help with Child Custody",
57
- "Social Security Disability and Insurance": "Interest in SSDI Benefits",
58
- },
59
- "DUI and DWI": {
60
- "Personal Injury": "Personal or Workplace Injury",
61
- "Wills and Trusts": "Need a Will or Trust",
62
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
63
- "Power of Attorney": "Power of Attorney Documents",
64
- "Divorce and Separation": "Need a Divorce or Separation",
65
- "Child Custody": "Need help with Child Custody",
66
- },
67
- "Wills and Trusts": {
68
- "Auto and Car Accidents": "Injured in a Car Accident",
69
- "Personal Injury": "Personal or Workplace Injury",
70
- "DUI and DWI": "Involved in a DUI/DWI",
71
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
72
- "Divorce and Separation": "Need a Divorce or Separation",
73
- "Child Custody": "Need help with Child Custody",
74
- },
75
- "Probate and Estates": {
76
- "Auto and Car Accidents": "Injured in a Car Accident",
77
- "Personal Injury": "Personal or Workplace Injury",
78
- "DUI and DWI": "Involved in a DUI/DWI",
79
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
80
- "Divorce and Separation": "Need a Divorce or Separation",
81
- "Child Custody": "Need help with Child Custody",
82
- },
83
- "Power of Attorney": {
84
- "Auto and Car Accidents": "Injured in a Car Accident",
85
- "Personal Injury": "Personal or Workplace Injury",
86
- "DUI and DWI": "Involved in a DUI/DWI",
87
- "Social Security Disability and Insurance": "Interest in Disability Benefits",
88
- "Divorce and Separation": "Need a Divorce or Separation",
89
- "Child Custody": "Need help with Child Custody",
90
- },
91
- "Long Term Disability": {
92
- "Auto and Car Accidents": "Injured in a Car Accident",
93
- "DUI and DWI": "Involved in a DUI/DWI",
94
- "Wills and Trusts": "Need a Will or Trust",
95
- "Power of Attorney": "Power of Attorney Documents",
96
- "Divorce and Separation": "Need a Divorce or Separation",
97
- "Child Custody": "Need help with Child Custody",
98
- },
99
- "Social Security Disability and Insurance": {
100
- "Auto and Car Accidents": "Injured in a Car Accident",
101
- "DUI and DWI": "Involved in a DUI/DWI",
102
- "Wills and Trusts": "Need a Will or Trust",
103
- "Power of Attorney": "Power of Attorney Documents",
104
- "Divorce and Separation": "Need a Divorce or Separation",
105
- "Child Custody": "Need help with Child Custody",
106
- },
107
- "*": defaultLegalImprovementCrossSells,
108
- };
109
20
 
110
21
  // ------ Common Base Settings
111
22
 
@@ -139,31 +50,6 @@ const sbsCheckbox = (updates) => {
139
50
  return checkbox(updates)
140
51
  };
141
52
 
142
- const col2Checkbox = (updates) => {
143
- if (!updates || !updates.legendClass) {
144
- updates.legendClass = "required";
145
- }
146
- updates.fieldsetClass = "$reset";
147
- updates.optionsClass = "t-pl-8 md:t-pl-2 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
148
- updates.innerClass = "t-items-start";
149
- updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
150
- return checkbox(updates)
151
- };
152
-
153
- const verticalCol2Checkbox = (updates) => {
154
- if (!updates || !updates.legendClass) {
155
- updates.legendClass = "required t-w-[100%] t-text-center";
156
- }
157
- updates.fieldsetClass = "$reset t-flex t-justify-center t-flex-col";
158
- updates.innerClass = "t-items-start";
159
- updates.wrapperClass = "$reset t-flex t-cursor-pointer t-mb-3";
160
- updates.optionClass = "t-pl-4 md:t-pl-16 md:t-min-w-[200px]";
161
- updates.optionsClass = "t-pl-4 t-pt-3 t-grid t-grid-cols-1 md:t-grid-cols-2";
162
- updates.messagesClass = "t-flex t-justify-center";
163
- updates.helpClass = "t-mt-0 t-mb-4 !t-text-sm t-text-center";
164
- return checkbox(updates)
165
- };
166
-
167
53
  const radio = (updates) => {
168
54
  ensureIds(updates);
169
55
  return merge(
@@ -273,15 +159,6 @@ const sbsSelect = (updates) => {
273
159
  return select(updates)
274
160
  };
275
161
 
276
- const verticalSelect = (updates) => {
277
- updates.labelClass = "required";
278
- updates.wrapperClass = "t-flex t-justify-center";
279
- updates.messagesClass = "t-flex t-justify-center";
280
- updates.inputClass = "t-min-w-[150px] t-bg-white " + (updates.inputClass || "");
281
- updates.helpClass = "t-mt-2.5 t-text-center";
282
- return select(updates)
283
- };
284
-
285
162
  const text = (updates) => {
286
163
  ensureIds(updates);
287
164
  return merge(
@@ -328,43 +205,11 @@ const textArea = (updates) => {
328
205
  )
329
206
  };
330
207
 
331
- const date = (updates) => {
332
- ensureIds(updates);
333
- return merge(
334
- {
335
- $formkit: "DatePicker",
336
- validation: "required",
337
- validationMessages: {
338
- required: "Field is required",
339
- },
340
- labelClass: "required t-block t-mb-3 t-font-semibold t-text-base formkit-invalid:t-text-red-500",
341
- innerClass:
342
- "t-border t-border-gray-400 formkit-invalid:t-border-red-500 t-rounded t-mb-1 focus-within:t-border-blue-500",
343
- },
344
- updates
345
- )
346
- };
347
-
348
- const sbsDate = (updates) => {
349
- updates.wrapperClass = "side-by-side t-items-center";
350
- return date(updates)
351
- };
352
-
353
- const verticalDate = (updates) => {
354
- updates.wrapperClass = "t-flex t-justify-center";
355
- updates.inputClass = "t-text-center";
356
- updates.messagesClass = "t-flex t-justify-center";
357
- return date(updates)
358
- };
359
-
360
- const email = (scope, vertical, updates = {}) => {
361
- const func = vertical ? verticalText : sbsText;
362
- const label = vertical ? updates.label : "Email Address:";
363
- return func({
364
- $formkit: "email",
208
+ const emailFL = (scope, updates = {}) => {
209
+ return text({
210
+ $formkit: "FloatingLabelText",
365
211
  name: scope ? scope + ":" + "Email" : "Email",
366
- label,
367
- placeholder: "email@domain.com",
212
+ placeholder: "Email Address",
368
213
  autocomplete: "email",
369
214
  "data-tf-sensitive": "false",
370
215
  validation: "required|email",
@@ -372,59 +217,72 @@ const email = (scope, vertical, updates = {}) => {
372
217
  required: "Email is required",
373
218
  email: "Invalid Email",
374
219
  },
220
+ inputClass: "t-text-center",
221
+ wrapperClass: "t-flex t-justify-center",
375
222
  ...updates,
376
223
  })
377
224
  };
378
225
 
379
- const firstName = (scope, vertical, updates = {}) => {
380
- const func = vertical ? verticalText : sbsText;
381
- const label = vertical ? updates.label : "First Name:";
382
- return func({
383
- label,
226
+ const firstNameFL = (scope, updates = {}) => {
227
+ return text({
228
+ $formkit: "FloatingLabelText",
384
229
  placeholder: "First Name",
385
230
  name: scope ? scope + ":" + "First_Name" : "First_Name",
386
231
  autocomplete: "given-name",
387
232
  validationMessages: {
388
233
  required: "First Name is required",
389
234
  },
235
+ inputClass: "t-text-center",
390
236
  ...updates,
391
237
  })
392
238
  };
393
239
 
394
- const lastName = (scope, vertical, updates = {}) => {
395
- const func = vertical ? verticalText : sbsText;
396
- const label = vertical ? updates.label : "Last Name:";
397
- return func({
398
- label,
240
+ const lastNameFL = (scope, updates = {}) => {
241
+ return text({
242
+ $formkit: "FloatingLabelText",
399
243
  placeholder: "Last Name",
400
244
  name: scope ? scope + ":" + "Last_Name" : "Last_Name",
401
245
  autocomplete: "family-name",
402
246
  validationMessages: {
403
247
  required: "Last Name is required",
404
248
  },
249
+ inputClass: "t-text-center",
405
250
  ...updates,
406
251
  })
407
252
  };
408
253
 
409
- const phone = (scope, vertical, updates = {}) => {
410
- const func = vertical ? verticalText : sbsText;
411
- const label = vertical ? updates.label : "Phone Number:";
412
- return func({
413
- $formkit: "tel",
254
+ const fullNameFLMobileCol = (scope, updates = {}) => {
255
+ return {
256
+ $el: "div",
257
+ attrs: {
258
+ class: "t-flex t-flex-col sm:t-flex-row t-flex-wrap t-gap-x-[2%] t-justify-center sm:!t-max-w-[70%]",
259
+ },
260
+ children: [
261
+ firstNameFL(scope, { outerClass: "sm:!t-max-w-[49%]", ...updates }),
262
+ lastNameFL(scope, { outerClass: "sm:!t-max-w-[49%]", ...updates }),
263
+ ],
264
+ }
265
+ };
266
+
267
+ const phoneFL = (scope, updates = {}) => {
268
+ return text({
269
+ $formkit: "FloatingLabelText",
270
+ datatype: "tel",
414
271
  name: scope ? scope + ":" + "Primary_Phone" : "Primary_Phone",
415
- label,
416
- placeholder: updates.placeholder || "###-###-####",
417
- maxlength: 12,
418
- help: updates.help || "10-digit phone number, hyphens optional",
272
+ placeholder: updates.placeholder || "Phone Number",
273
+ maxlength: 14,
274
+ help: updates.help || null,
419
275
  autocomplete: "tel-national",
420
276
  "data-tf-sensitive": "false",
421
- validation: "required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",
277
+ validation: "required|matches:/^[0-9]{3}[0-9]{3}[0-9]{4}$/|valid_phone",
422
278
  validationMessages: {
423
279
  required: "Phone Number is required",
424
- matches: "Invalid Phone Format, use ###-###-####",
280
+ matches: "Invalid Phone Format, use (XXX) YYY-ZZZZ",
425
281
  valid_phone: "Invalid Phone Number",
426
282
  },
427
283
  helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]",
284
+ inputClass: "t-text-center",
285
+ wrapperClass: "t-flex t-justify-center",
428
286
  ...updates,
429
287
  })
430
288
  };
@@ -450,43 +308,6 @@ const zipcode$1 = (scope, vertical, updates = {}) => {
450
308
  })
451
309
  };
452
310
 
453
- const applicantAge = (scope, vertical, updates = {}) => {
454
- const func = vertical ? verticalText : sbsText;
455
- const label = vertical ? updates.label : "Age of Applicant?";
456
- const value = vertical ? updates.value ?? "50" : null;
457
- return func(
458
- merge({
459
- label,
460
- placeholder: "Age between 18 and 65",
461
- name: scope ? scope + ":" + "Applicant_Age" : "Applicant_Age",
462
- value,
463
- maxlength: 2,
464
- inputmode: "numeric",
465
- validation: "required|min:18,max:65",
466
- validationMessages: {
467
- required: "Applicant Age is required",
468
- min: "Invalid Age - must be between 18 and 65",
469
- max: "Invalid Age - must be between 18 and 65",
470
- },
471
- ...updates,
472
- })
473
- )
474
- };
475
-
476
- const atFault = (scope, vertical, updates = {}) => {
477
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
478
- const label = vertical ? updates.label : "Were You at Fault?";
479
- return func(
480
- merge(
481
- {
482
- label,
483
- name: scope ? scope + ":" + "At_Fault" : "At_Fault",
484
- },
485
- updates
486
- )
487
- )
488
- };
489
-
490
311
  const bankruptcyCrossSell = (scope) =>
491
312
  sbsCheckbox({
492
313
  label: "I'd also like a consult for bankruptcy or debt elimination (optional)",
@@ -498,31 +319,7 @@ const bankruptcyCrossSell = (scope) =>
498
319
  helpClass: "!t-text-sm",
499
320
  });
500
321
 
501
- const bloodContentAlcoholTest = (scope, vertical, updates = {}) => {
502
- const func = vertical ? verticalSelect : sbsSelect;
503
- const label = vertical ? updates.label : "Blood Alcohol Content Measured by Test:";
504
- return func(
505
- merge(
506
- {
507
- label,
508
- name: scope ? scope + ":" + "Blood_Alcohol_Content_Test" : "Blood_Alcohol_Content_Test",
509
- options: [
510
- "No Test",
511
- "0.00% - 0.04%",
512
- "0.05% - 0.08%",
513
- "0.09% - 0.12%",
514
- "0.13% - 0.16%",
515
- "0.17% - 0.20%",
516
- "More than 0.20%",
517
- "Don't know",
518
- ],
519
- },
520
- updates
521
- )
522
- )
523
- };
524
-
525
- const businessServicesDisplay$1 = (scope, vertical, updates = {}) => {
322
+ const businessServicesDisplay = (scope, vertical, updates = {}) => {
526
323
  const func = vertical ? col2RadioCenter : sbsRadio;
527
324
  const label = vertical ? updates.label : "Select The Business Service You Need:";
528
325
  return func(
@@ -530,16 +327,15 @@ const businessServicesDisplay$1 = (scope, vertical, updates = {}) => {
530
327
  {
531
328
  label,
532
329
  name: scope ? scope + ":" + "Business_Services_Display" : "Business_Services_Display",
533
- options: [
534
- "Business Formation",
535
- "Contracts",
536
- "Insurance and Liability",
537
- "Mergers and Acquisition",
538
- "Regulatory Compliance",
539
- "Employee Dispute",
540
- "Advice and Consulting",
541
- "Other",
542
- ],
330
+ options: {
331
+ "Business Formation": "Business Formation",
332
+ Contracts: "Contracts",
333
+ "Insurance and Liability": "Insurance and Liability",
334
+ "Mergers and Acquisition": "Mergers and Acquisition",
335
+ "Regulatory Compliance": "Regulatory Compliance",
336
+ "Employee Dispute": "Employee Dispute",
337
+ Other: "Other Business Issues",
338
+ },
543
339
  },
544
340
  updates
545
341
  )
@@ -561,87 +357,6 @@ const businessType$1 = (scope, vertical, updates = {}) => {
561
357
  )
562
358
  };
563
359
 
564
- const causeOfInjury = (scope, vertical, updates = {}) => {
565
- const func = vertical ? col2RadioCenter : sbsSelect;
566
- const label = vertical ? updates.label : "Cause of Injury:";
567
- return func(
568
- merge(
569
- {
570
- label,
571
- name: scope ? scope + ":" + "Cause_Of_Injury" : "Cause_Of_Injury",
572
- options: [
573
- "Traumatic Physical Injury (Accident)",
574
- "Repeated Trauma Injury",
575
- "Mental Injury",
576
- "Occupational Disease",
577
- "Not Sure",
578
- ],
579
- },
580
- updates
581
- )
582
- )
583
- };
584
-
585
- const childHome = (scope, vertical, updates = {}) => {
586
- const func = vertical ? col2RadioCenter : sbsSelect;
587
- const label = vertical ? updates.label : "With Whom Do the Children Currently Live?";
588
- return func(
589
- merge(
590
- {
591
- label,
592
- name: scope ? scope + ":" + "Child_Home" : "Child_Home",
593
- options: ["Mother", "Father", "Grandparents", "Other"],
594
- },
595
- updates
596
- )
597
- )
598
- };
599
-
600
- const childPrimaryCaregiver = (scope, vertical, updates = {}) => {
601
- const func = vertical ? verticalButtonRadio : sbsSelect;
602
- const label = vertical ? updates.label : "Who is the Primary Caregiver?";
603
- return func(
604
- merge(
605
- {
606
- label,
607
- name: scope ? scope + ":" + "Child_Primary_Caregiver" : "Child_Primary_Caregiver",
608
- options: ["Mother", "Father", "Other"],
609
- },
610
- updates
611
- )
612
- )
613
- };
614
-
615
- const childRelationship = (scope, vertical, updates = {}) => {
616
- const func = vertical ? col2RadioCenter : sbsSelect;
617
- const label = vertical ? updates.label : "Your Relationship to Child(ren):";
618
- return func(
619
- merge(
620
- {
621
- label,
622
- name: scope ? scope + ":" + "Child_Relationship" : "Child_Relationship",
623
- options: ["Father", "Mother", "Grandparent", "Aunt/Uncle", "Other"],
624
- },
625
- updates
626
- )
627
- )
628
- };
629
-
630
- const claimStatus = (scope, vertical, updates = {}) => {
631
- const func = vertical ? col2RadioCenter : sbsSelect;
632
- const label = vertical ? updates.label : "Status of Claim:";
633
- return func(
634
- merge(
635
- {
636
- label,
637
- name: scope ? scope + ":" + "Claim_Status" : "Claim_Status",
638
- options: ["No action taken yet", "Demand for compensation made", "Lawsuit filed", "Other"],
639
- },
640
- updates
641
- )
642
- )
643
- };
644
-
645
360
  // TODO: vertical not supported yet
646
361
  const comments = (scope, vertical, updates) =>
647
362
  textArea(
@@ -674,493 +389,58 @@ const degreeOfInterest$1 = (scope, vertical, updates = {}) => {
674
389
  )
675
390
  };
676
391
 
677
- const degreeOfInterestHelp = (scope, vertical, updates = {}) =>
678
- degreeOfInterest$1(scope, vertical, merge(updates, { help: "No payment necessary to speak with lawyers." }));
679
-
680
- const disabilityConditionStopWork = (scope, vertical, updates = {}) => {
681
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
682
- const label = vertical
683
- ? updates.label
684
- : "Do You Expect To Be Out Of Work For At Least a Year Due To Your Health?";
685
- return func(
686
- merge(
687
- {
688
- name: scope ? scope + ":" + "Disability_Condition_Stop_Work" : "Disability_Condition_Stop_Work",
689
- label,
690
- },
691
- updates
692
- )
693
- )
694
- };
695
-
696
- const disabilityWorkHistory = (scope, vertical, updates = {}) => {
697
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
698
- const label = vertical ? updates.label : "Have You Had a Full-Time Job Within the Past 5 Years?";
699
- return func(
700
- merge(
701
- {
702
- name: scope ? scope + ":" + "Disability_Work_History" : "Disability_Work_History",
703
- label,
704
- },
705
- updates
706
- )
707
- )
708
- };
709
-
710
- const doctorTreatment = (scope, vertical, updates = {}) => {
711
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
712
- const label = vertical ? updates.label : "Have You Recently Been Treated by a Doctor, Hospital or Clinic?";
713
- return func(
714
- merge(
715
- {
716
- name: scope ? scope + ":" + "Doctor_Treatment" : "Doctor_Treatment",
717
- label,
718
- },
719
- updates
720
- )
721
- )
722
- };
723
-
724
- const estateLegalServicesNeeded = (scope, vertical, updates = {}) => {
725
- const func = vertical ? col2RadioCenter : sbsSelect;
726
- const label = vertical ? updates.label : "Legal Services Needed for Your Estate:";
727
- return func(
728
- merge(
729
- {
730
- name: scope ? scope + ":" + "Estate_Legal_Services_Needed" : "Estate_Legal_Services_Needed",
731
- label,
732
- options: [
733
- "Charitable Giving",
734
- "Contested Wills",
735
- "Drafting Wills or Trust",
736
- "Estate Administration",
737
- "Asset Protection",
738
- "Other",
739
- ],
740
- },
741
- updates
742
- )
743
- )
744
- };
745
-
746
- const haveAttorney$1 = (scope, vertical, updates = {}) => {
747
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
748
- const label = vertical ? updates.label : "Already Working with An Attorney?";
749
- return func(
750
- merge(
751
- {
752
- label,
753
- name: scope ? scope + ":" + "Have_Attorney" : "Have_Attorney",
754
- },
755
- updates
756
- )
757
- )
758
- };
759
-
760
- const haveChildren = (scope, vertical, updates = {}) => {
761
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
762
- const label = vertical ? updates.label : "Do You Have Children?";
763
- return func(
764
- merge(
765
- {
766
- name: scope ? scope + ":" + "Have_Children" : "Have_Children",
767
- label,
768
- },
769
- updates
770
- )
771
- )
772
- };
773
-
774
- const incidentDate = (scope, vertical, updates = {}) => {
775
- const func = vertical ? verticalDate : sbsDate;
776
- const label = vertical ? updates.label : "Date of Incident:";
777
- return func(
778
- merge(
779
- {
780
- label,
781
- name: scope ? scope + ":" + "Incident_Date" : "Incident_Date",
782
- },
783
- updates
784
- )
785
- )
786
- };
787
-
788
- const lawyerPaymentMethod = (scope, vertical, updates = {}) => {
789
- const func = vertical ? col2RadioCenter : sbsSelect;
790
- const label = vertical ? updates.label : "How Will You Pay for Legal Fees if You Hire a Lawyer?";
791
- const help = vertical ? updates.help : "No payment necessary to start a consultation.";
792
- const options = vertical
793
- ? {
794
- Cash: "Cash",
795
- "Credit Card": "Credit Card",
796
- Family: "Family or Friend",
797
- Other: "Other",
798
- }
799
- : ["Cash", "Check", "Credit Card", "Friend", "Family", "Other"];
800
- return func(
801
- merge(
802
- {
803
- label,
804
- help,
805
- name: scope ? scope + ":" + "Lawyer_Payment_Method" : "Lawyer_Payment_Method",
806
- options,
807
- fieldsetClass: vertical ? "$reset t-flex t-flex-col t-items-center" : undefined,
808
- },
809
- updates
810
- )
811
- )
812
- };
813
-
814
- const legalCrossSells$1 = () =>
815
- col2Checkbox({
816
- id: "Legal_CrossSells",
817
- name: "Legal_CrossSells",
818
- help: 'Just hit "Next" if none apply',
819
- helpClass: "t-text-center !t-text-sm",
820
- validation: null,
821
- options: '$getCrossSellOptions($get(form), $getVal($get(form), "Type_Of_Legal_Problem"))',
822
- });
823
-
824
- const maritalStatus = (scope, vertical, updates = {}) => {
825
- const func = vertical ? col2RadioCenter : sbsSelect;
826
- const label = vertical ? updates.label : "Marital Status:";
827
- return func(
828
- merge(
829
- {
830
- label,
831
- name: scope ? scope + ":" + "Marital_Status" : "Marital_Status",
832
- options: [
833
- "Unmarried, Living Together",
834
- "Unmarried, Do Not Live Together",
835
- "Married, Living Together",
836
- "Separated",
837
- "Divorced",
838
- "Other",
839
- ],
840
- },
841
- updates
842
- )
843
- )
844
- };
845
-
846
- const numEmployeesOfBusiness$1 = (scope, vertical, updates = {}) => {
847
- const func = vertical ? col2RadioCenter : sbsSelect;
848
- const label = vertical ? updates.label : "Total Employees of Business? (estimated)";
849
- return func(
850
- merge(
851
- {
852
- label,
853
- name: scope ? scope + ":" + "Num_Employees_Of_Business" : "Num_Employees_Of_Business",
854
- options: ["1-5", "6-20", "21-50", "51-100", "101-500", "501-1,000", "More than 1,000"],
855
- },
856
- updates
857
- )
858
- )
859
- };
860
-
861
- // XXX HERE
862
-
863
- const pendingCharges = (scope, vertical, updates = {}) => {
864
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
865
- const label = vertical ? updates.label : "Do you currently have any pending charges?";
866
- return func(
867
- merge(
868
- {
869
- name: scope ? scope + ":" + "Pending_Charges" : "Pending_Charges",
870
- label,
871
- },
872
- updates
873
- )
874
- )
875
- };
876
-
877
- const primaryInjury = (scope, vertical, updates = {}) => {
878
- const func = vertical ? col2RadioCenter : sbs2ColRadio;
879
- const label = vertical ? updates.label : "Primary Injury:";
880
- return func(
881
- merge(
882
- {
883
- label,
884
- name: scope ? scope + ":" + "Primary_Injury" : "Primary_Injury",
885
- options: [
886
- "Anxiety",
887
- "Back or Neck Pain",
888
- "Broken Bones",
889
- "Cuts and Bruises",
890
- "Headaches",
891
- "Memory Loss",
892
- "Loss of Limb",
893
- "Not Sure or Other",
894
- ],
895
- },
896
- updates
897
- )
898
- )
899
- };
900
-
901
- const priorAlcoholOffenses = (scope, vertical, updates = {}) => {
902
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
903
- const label = vertical ? updates.label : "Any Prior Alcohol Related Offenses?";
904
- return func(
905
- merge(
906
- {
907
- name: scope ? scope + ":" + "Prior_Alcohol_Offenses" : "Prior_Alcohol_Offenses",
908
- label,
909
- },
910
- updates
911
- )
912
- )
913
- };
914
-
915
- const policeReportFiled = (scope, vertical, updates = {}) => {
916
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
917
- const label = vertical ? updates.label : "Was a Police Report Filed?";
918
- return func(
919
- merge(
920
- {
921
- name: scope ? scope + ":" + "Police_Report_Filed" : "Police_Report_Filed",
922
- label,
923
- },
924
- updates
925
- )
926
- )
927
- };
928
-
929
- const roleInMatterProbate = (scope, vertical, updates = {}) => {
930
- const func = vertical ? col2RadioCenter : sbsSelect;
931
- const label = vertical ? updates.label : "What is Your Role in this Matter?";
932
- return func(
933
- merge(
934
- {
935
- label,
936
- name: scope ? scope + ":" + "Role_In_Matter_Probate" : "Role_In_Matter_Probate",
937
- options: ["Preparing My Will", "Executor", "Heir", "Other"],
938
- },
939
- updates
940
- )
941
- )
942
- };
943
-
944
- const socialSecurityDisabilityReceivingBenefits = (scope, vertical, updates = {}) => {
945
- const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
946
- const label = vertical ? updates.label : "Are You Currently Receiving Social Security Disability Benefits?";
947
- return func(
948
- merge(
949
- {
950
- name: scope
951
- ? scope + ":" + "Social_Security_Disability_Receiving_Benefits"
952
- : "Social_Security_Disability_Receiving_Benefits",
953
- label,
954
- },
955
- updates
956
- )
957
- )
958
- };
959
-
960
- const TCPAConsent = (scope, updates = {}) => ({
961
- $formkit: "checkbox",
962
- label: "$meta.tcpaLanguage",
963
- // Necessary to get links to work in the tcpa language
964
- __raw__sectionsSchema: {
965
- label: { attrs: { innerHTML: "$label" } },
966
- },
967
- name: scope ? scope + ":" + "TCPA_Opt_In" : "TCPA_Opt_In",
968
- "data-tf-sensitive": "false",
969
- validation: "required|accepted",
970
- validationMessages: {
971
- required: "Consent is required",
972
- accepted: "Consent is required",
973
- },
974
- classes: {
975
- outer: updates.outerClass ? updates.outerClass : "",
976
- wrapper: updates.wrapperClass ? updates.wrapperClass : "",
977
- messages: updates.messagesClass ? updates.messagesClass : "",
978
- label:
979
- "!t-text-[0.7rem] t-text-slate-500 t-font-normal !t-leading-[0.9rem]" +
980
- (updates.labelClass ? " " + updates.labelClass : ""),
981
- },
982
- });
983
-
984
- const typeOfAlcoholTest = (scope, vertical, updates = {}) => {
985
- const func = vertical ? col2RadioCenter : sbsSelect;
986
- const label = vertical ? updates.label : "Type of Alcohol Test Performed?";
987
- return func(
988
- merge(
989
- {
990
- label,
991
- name: scope ? scope + ":" + "Type_Of_Alcohol_Test" : "Type_Of_Alcohol_Test",
992
- options: ["No Test", "Refused Test", "Breath Test", "Blood Test", "Urine Test", "Don't Know"],
993
- },
994
- updates
995
- )
996
- )
997
- };
998
-
999
- const typeOfAssets = (scope, vertical, updates = {}) => {
1000
- const func = vertical ? verticalCol2Checkbox : col2Checkbox;
1001
- const label = vertical ? updates.label : "Type of Assets:";
1002
- return func(
1003
- merge(
1004
- {
1005
- label,
1006
- name: scope ? scope + ":" + "Type_Of_Assets" : "Type_Of_Assets",
1007
- options: [
1008
- "Business Interests",
1009
- "Cash",
1010
- "Life Insurance Policies",
1011
- "Pensions/Retirement",
1012
- "Personal Possessions",
1013
- "Property",
1014
- "Stock/Bonds",
1015
- ],
1016
- },
1017
- updates
1018
- )
1019
- )
1020
- };
1021
-
1022
- const valueOfAssets = (scope, vertical, updates = {}) => {
1023
- const func = vertical ? col2RadioCenter : sbsSelect;
1024
- const label = vertical ? updates.label : "Value of Your Assets?";
1025
- return func(
1026
- merge(
1027
- {
1028
- label,
1029
- name: scope ? scope + ":" + "Value_Of_Assets" : "Value_Of_Assets",
1030
- options: ["Less than 50K", "50K to 100K", "100K to 250K", "250K to 500K", "500K to 1M", "More than 1M"],
1031
- },
1032
- updates
1033
- )
1034
- )
1035
- };
1036
-
1037
- // ------ Question Groups - TODO: move these go separate file groups.js
1038
-
1039
- // NOTE: name must be unique within a form!
1040
- const group = (name, updates) => {
1041
- return merge(
1042
- {
1043
- $cmp: "FormKit",
1044
- props: {
1045
- type: "group",
1046
- key: name,
1047
- id: name,
1048
- name: name,
1049
- },
1050
- },
1051
- updates
1052
- )
1053
- };
1054
-
1055
- const AutoAndCarAccidentsQuestions = (condition, scope) =>
1056
- group("AutoAndCarAccidentsQuestions", {
1057
- if: condition || '$get(Type_Of_Legal_Problem).value == "Auto and Car Accidents"',
1058
- children: [
1059
- haveAttorney$1(scope),
1060
- incidentDate(scope),
1061
- atFault(scope),
1062
- primaryInjury(scope),
1063
- doctorTreatment(scope),
1064
- policeReportFiled(scope),
1065
- ],
1066
- });
1067
-
1068
- const ChildCustodyQuestions = (condition, scope) =>
1069
- group("ChildCustodyQuestions", {
1070
- if: condition || '$get(Type_Of_Legal_Problem).value == "Child Custody"',
1071
- children: [
1072
- haveAttorney$1(scope),
1073
- childRelationship(scope),
1074
- childHome(scope),
1075
- childPrimaryCaregiver(scope),
1076
- degreeOfInterest$1(scope),
1077
- lawyerPaymentMethod(scope),
1078
- ],
1079
- });
1080
-
1081
- const DivorceQuestions = (condition, scope) =>
1082
- group("DivorceQuestions", {
1083
- if: condition || '$get(Type_Of_Legal_Problem).value == "Divorce and Separation"',
1084
- children: [
1085
- haveAttorney$1(scope),
1086
- maritalStatus(scope),
1087
- haveChildren(scope),
1088
- degreeOfInterest$1(scope),
1089
- lawyerPaymentMethod(scope),
1090
- ],
1091
- });
1092
-
1093
- const DUIAndDWIQuestions = (condition, scope) =>
1094
- group("DUIAndDWIQuestions", {
1095
- if: condition || '$get(Type_Of_Legal_Problem).value == "DUI and DWI"',
1096
- children: [
1097
- haveAttorney$1(scope),
1098
- incidentDate(scope),
1099
- priorAlcoholOffenses(scope),
1100
- typeOfAlcoholTest(scope),
1101
- bloodContentAlcoholTest(scope),
1102
- pendingCharges(scope),
1103
- degreeOfInterestHelp(scope),
1104
- ],
1105
- });
1106
-
1107
- const PersonalInjuryQuestions = (condition, scope) =>
1108
- group("PersonalInjuryQuestions", {
1109
- if: condition || '$get(Type_Of_Legal_Problem).value == "Personal Injury"',
1110
- children: [
1111
- haveAttorney$1(scope),
1112
- incidentDate(scope),
1113
- claimStatus(scope),
1114
- atFault(scope),
1115
- primaryInjury(scope),
1116
- doctorTreatment(scope),
1117
- ],
1118
- });
1119
-
1120
- const PowerofAttorneyQuestions = (condition, scope) =>
1121
- group("PowerofAttorneyQuestions", {
1122
- if: condition || '$get(Type_Of_Legal_Problem).value == "Power of Attorney"',
1123
- children: [haveAttorney$1(scope), degreeOfInterestHelp(scope)],
1124
- });
1125
-
1126
- const SocialSecurityDisabilityAndInsuranceQuestions = (condition, scope) =>
1127
- group("SocialSecurityDisabilityAndInsuranceQuestions", {
1128
- if: condition || '$get(Type_Of_Legal_Problem).value == "Social Security Disability and Insurance"',
1129
- children: [
1130
- haveAttorney$1(scope),
1131
- applicantAge(scope),
1132
- disabilityConditionStopWork(scope),
1133
- disabilityWorkHistory(scope),
1134
- socialSecurityDisabilityReceivingBenefits(scope),
1135
- doctorTreatment(scope),
1136
- ],
1137
- });
392
+ const haveAttorney$1 = (scope, vertical, updates = {}) => {
393
+ const func = vertical ? verticalYesNoRadio : sbsYesNoRadio;
394
+ const label = vertical ? updates.label : "Already Working with An Attorney?";
395
+ return func(
396
+ merge(
397
+ {
398
+ label,
399
+ name: scope ? scope + ":" + "Have_Attorney" : "Have_Attorney",
400
+ },
401
+ updates
402
+ )
403
+ )
404
+ };
1138
405
 
1139
- const WillsAndTrustsQuestions = (condition, scope) =>
1140
- group("WillsAndTrustsQuestions", {
1141
- if: condition || '$get(Type_Of_Legal_Problem).value == "Wills and Trusts"',
1142
- children: [
1143
- haveAttorney$1(scope),
1144
- valueOfAssets(scope),
1145
- typeOfAssets(scope),
1146
- roleInMatterProbate(scope),
1147
- estateLegalServicesNeeded(scope),
1148
- degreeOfInterestHelp(scope),
1149
- ],
1150
- });
406
+ const numEmployeesOfBusiness$1 = (scope, vertical, updates = {}) => {
407
+ const func = vertical ? col2RadioCenter : sbsSelect;
408
+ const label = vertical ? updates.label : "Total Employees of Business? (estimated)";
409
+ return func(
410
+ merge(
411
+ {
412
+ label,
413
+ name: scope ? scope + ":" + "Num_Employees_Of_Business" : "Num_Employees_Of_Business",
414
+ options: ["1-5", "6-20", "21-50", "51-100", "101-500", "501-1,000", "More than 1,000"],
415
+ },
416
+ updates
417
+ )
418
+ )
419
+ };
1151
420
 
1152
- const WorkersCompensationQuestions = (condition, scope) =>
1153
- group("WorkersCompensationQuestions", {
1154
- if: condition || '$get(Type_Of_Legal_Problem).value == "Workers Compensation"',
1155
- children: [
1156
- haveAttorney$1(scope),
1157
- incidentDate(scope),
1158
- claimStatus(scope),
1159
- primaryInjury(scope),
1160
- causeOfInjury(scope),
1161
- doctorTreatment(scope),
1162
- ],
1163
- });
421
+ const TCPAConsent = (scope, updates = {}) => ({
422
+ $formkit: "checkbox",
423
+ label: "$meta.tcpaLanguage",
424
+ // Necessary to get links to work in the tcpa language
425
+ __raw__sectionsSchema: {
426
+ label: { attrs: { innerHTML: "$label" } },
427
+ },
428
+ name: scope ? scope + ":" + "TCPA_Opt_In" : "TCPA_Opt_In",
429
+ "data-tf-sensitive": "false",
430
+ validation: "required|accepted",
431
+ validationMessages: {
432
+ required: "Consent is required",
433
+ accepted: "Consent is required",
434
+ },
435
+ classes: {
436
+ outer: updates.outerClass ? updates.outerClass : "",
437
+ wrapper: updates.wrapperClass ? updates.wrapperClass : "",
438
+ messages: updates.messagesClass ? updates.messagesClass : "",
439
+ label:
440
+ "!t-text-[0.7rem] t-text-slate-500 t-font-normal !t-leading-[0.9rem]" +
441
+ (updates.labelClass ? " " + updates.labelClass : ""),
442
+ },
443
+ });
1164
444
 
1165
445
  const NEXT_ON_ENTER = "$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
1166
446
  const NEXT_ON_INPUT = "$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))";
@@ -1189,60 +469,6 @@ const findLastInput = (n) => {
1189
469
  return null
1190
470
  };
1191
471
 
1192
- const secureIconDefault = {
1193
- $el: "div",
1194
- if: "$activeStep === $lastStep()",
1195
- attrs: {
1196
- class: "t-flex t-justify-center t-items-center t-text-sm t-text-gray-500",
1197
- },
1198
- children: [
1199
- {
1200
- $el: "img",
1201
- attrs: {
1202
- loading: "lazy",
1203
- alt: "",
1204
- style: {
1205
- border: 0,
1206
- },
1207
- width: "25",
1208
- height: "25",
1209
- src: "https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg",
1210
- },
1211
- },
1212
- {
1213
- $el: "span",
1214
- children: "Secure & Encrypted",
1215
- attrs: {
1216
- class: "t-pl-2 t-pt-1 t-font-medium",
1217
- },
1218
- },
1219
- ],
1220
- };
1221
-
1222
- function secureIcon(updates = {}) {
1223
- return merge(secureIconDefault, updates)
1224
- }
1225
-
1226
- function crossSellQuestionsStepHeadline(updates) {
1227
- return {
1228
- $el: "h3",
1229
- children: updates.headline || "Tell Us About Your Situation",
1230
- attrs: {
1231
- class: "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-4 t-pt-0 t-px-1",
1232
- },
1233
- }
1234
- }
1235
-
1236
- function crossSellQuestionsStepSubHeadline(updates) {
1237
- return {
1238
- $el: "h5",
1239
- children: updates.subheadline || "Tell us about your situation:",
1240
- attrs: {
1241
- 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",
1242
- },
1243
- }
1244
- }
1245
-
1246
472
  function verticalStepHeadline(updates) {
1247
473
  return {
1248
474
  $el: "h3",
@@ -1256,19 +482,6 @@ function verticalStepHeadline(updates) {
1256
482
  }
1257
483
  }
1258
484
 
1259
- function verticalStepSubHeadline(updates) {
1260
- return {
1261
- $el: "h5",
1262
- children: updates.subheadline || "",
1263
- attrs: {
1264
- class:
1265
- "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" +
1266
- " " +
1267
- (updates.subheadlineClass || ""),
1268
- },
1269
- }
1270
- }
1271
-
1272
485
  function commentsStepHeadline(updates) {
1273
486
  return {
1274
487
  $el: "h3",
@@ -1302,19 +515,6 @@ function firstAndLastStepHeadline(updates) {
1302
515
  }
1303
516
  }
1304
517
 
1305
- function legalCrossSellsStepHeadline(updates) {
1306
- return {
1307
- $el: "h3",
1308
- children: updates.headline || "Do you have other legal issues?",
1309
- attrs: {
1310
- class:
1311
- "t-flex t-justify-center t-text-center t-text-xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
1312
- " " +
1313
- (updates.headlineClass || ""),
1314
- },
1315
- }
1316
- }
1317
-
1318
518
  function contactStepHeadline(updates) {
1319
519
  return {
1320
520
  $el: "h3",
@@ -1465,23 +665,40 @@ function commentsWithBankruptcy(updates = {}) {
1465
665
  )
1466
666
  }
1467
667
 
1468
- function contactInfo(updates = {}) {
668
+ function contactInfoV2(updates = {}) {
1469
669
  return step(
1470
670
  "contactInfo",
1471
671
  [
1472
672
  contactStepHeadline(updates),
1473
673
  contactStepSubHeadline(updates),
1474
674
  trustedFormScript(),
1475
- email(updates.scope),
1476
- phone(updates.scope),
1477
- TCPAConsent(updates.scope),
1478
- secureIcon(),
675
+ {
676
+ $el: "div",
677
+ attrs: {
678
+ class: "t-flex t-flex-col t-justify-center t-items-center",
679
+ },
680
+ children: [
681
+ emailFL(updates.scope, {
682
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
683
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
684
+ }),
685
+ phoneFL(updates.scope, {
686
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
687
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
688
+ }),
689
+ ],
690
+ },
691
+ TCPAConsent(updates.scope, {
692
+ outerClass: "!t-flex !t-flex-col !t-justify-center !t-items-center",
693
+ wrapperClass: "t-w-[95%] sm:t-w-[80%]",
694
+ messagesClass: "t-w-[95%] sm:t-w-[80%]",
695
+ }),
1479
696
  ],
1480
697
  { nextOnEnter: false }
1481
698
  )
1482
699
  }
1483
700
 
1484
- function firstAndLastV3(updates = {}) {
701
+ function firstAndLastV4(updates = {}) {
1485
702
  return step(
1486
703
  "firstAndLast",
1487
704
  [
@@ -1489,12 +706,13 @@ function firstAndLastV3(updates = {}) {
1489
706
  headline: updates.headline ?? "Who is looking for help?",
1490
707
  headlineClass: updates.headlineClass,
1491
708
  }),
1492
- verticalStepSubHeadline({
1493
- subheadline: updates.subheadline ?? "We never share info without consent",
1494
- subheadlineClass: "!t-text-sm !t-text-gray-500",
1495
- }),
1496
- firstName(updates.scope),
1497
- lastName(updates.scope),
709
+ {
710
+ $el: "div",
711
+ attrs: {
712
+ class: "t-flex t-flex-col t-justify-center t-items-center t-pt-3",
713
+ },
714
+ children: [fullNameFLMobileCol(updates.scope)],
715
+ },
1498
716
  ],
1499
717
  updates
1500
718
  )
@@ -1504,180 +722,6 @@ function zipcode(updates = {}) {
1504
722
  return sqstep("zipcode", zipcode$1(updates.scope, true, updates.input), "Please verify your Zip Code", updates)
1505
723
  }
1506
724
 
1507
- function autoAndCarAccidentCrossSellQuestions(updates = {}) {
1508
- return step(
1509
- "autoAndCarAccidentCrossSellQuestions",
1510
- [
1511
- crossSellQuestionsStepHeadline({
1512
- headline: "You May Be Entitled To Compensation",
1513
- }),
1514
- crossSellQuestionsStepSubHeadline({
1515
- subheadline: "Tell us about your accident:",
1516
- }),
1517
- AutoAndCarAccidentsQuestions("true", "CrossSell:Auto_and_Car_Accidents"),
1518
- comments("CrossSell:Auto_and_Car_Accidents", false, {
1519
- label: "Accident Description:",
1520
- placeholder: "Please describe your accident in a few words...",
1521
- inputClass: "!t-h-16",
1522
- }),
1523
- ],
1524
- updates
1525
- )
1526
- }
1527
-
1528
- function childCustodyCrossSellQuestions(updates = {}) {
1529
- return step(
1530
- "childCustodyCrossSellQuestions",
1531
- [
1532
- crossSellQuestionsStepHeadline({ headline: "Child Custody Information" }),
1533
- ChildCustodyQuestions("true", "CrossSell:Child_Custody"),
1534
- comments("CrossSell:Child_Custody", false, {
1535
- label: "Description:",
1536
- placeholder: "Please describe your situation in a few words...",
1537
- inputClass: "!t-h-16",
1538
- }),
1539
- ],
1540
- updates
1541
- )
1542
- }
1543
-
1544
- function divorceAndSeparationCrossSellQuestions(updates = {}) {
1545
- return step(
1546
- "divorceAndSeparationCrossSellQuestions",
1547
- [
1548
- crossSellQuestionsStepHeadline({
1549
- headline: "Divorce or Separation Information",
1550
- }),
1551
- DivorceQuestions("true", "CrossSell:Divorce_and_Separation"),
1552
- comments("CrossSell:Divorce_and_Separation", false, {
1553
- label: "Description:",
1554
- placeholder: "Please describe your situation in a few words...",
1555
- inputClass: "!t-h-16",
1556
- }),
1557
- ],
1558
- updates
1559
- )
1560
- }
1561
-
1562
- function duiAndDWICrossSellQuestions(updates = {}) {
1563
- return step(
1564
- "duiAndDWICrossSellQuestions",
1565
- [
1566
- crossSellQuestionsStepHeadline({ headline: "About Your DUI/DWI" }),
1567
- DUIAndDWIQuestions("true", "CrossSell:DUI_and_DWI"),
1568
- comments("CrossSell:DUI_and_DWI", false, {
1569
- label: "Incident Description:",
1570
- placeholder: "Please describe your incident in a few words...",
1571
- inputClass: "!t-h-16",
1572
- }),
1573
- ],
1574
- updates
1575
- )
1576
- }
1577
-
1578
- function ssdiCrossSellQuestions(updates = {}) {
1579
- return step(
1580
- "ssdiCrossSellQuestions",
1581
- [
1582
- crossSellQuestionsStepHeadline({
1583
- headline: "You May Be Entitled To Benefits",
1584
- }),
1585
- crossSellQuestionsStepSubHeadline({
1586
- subheadline: "Tell us about your disability:",
1587
- }),
1588
- SocialSecurityDisabilityAndInsuranceQuestions("true", "CrossSell:Social_Security_Disability_and_Insurance"),
1589
- comments("CrossSell:Social_Security_Disability_and_Insurance", false, {
1590
- label: "Description:",
1591
- placeholder: "Please describe your situation in a few words...",
1592
- inputClass: "!t-h-16",
1593
- }),
1594
- ],
1595
- updates
1596
- )
1597
- }
1598
-
1599
- function personalInjuryCrossSellQuestions(updates = {}) {
1600
- return step(
1601
- "personalInjuryCrossSellQuestions",
1602
- [
1603
- crossSellQuestionsStepHeadline({
1604
- headline: "You May Be Entitled To Compensation",
1605
- }),
1606
- crossSellQuestionsStepSubHeadline({
1607
- subheadline: "Tell us about your injury:",
1608
- }),
1609
- PersonalInjuryQuestions("true", "CrossSell:Personal_Injury"),
1610
- comments("CrossSell:Personal_Injury", false, {
1611
- label: "Injury Description:",
1612
- placeholder: "Please describe your injury in a few words...",
1613
- inputClass: "!t-h-16",
1614
- }),
1615
- ],
1616
- updates
1617
- )
1618
- }
1619
-
1620
- function powerOfAttorneyCrossSellQuestions(updates = {}) {
1621
- return step(
1622
- "powerOfAttorneyCrossSellQuestions",
1623
- [
1624
- crossSellQuestionsStepHeadline({
1625
- headline: "Power of Attorney Information",
1626
- }),
1627
- PowerofAttorneyQuestions("true", "CrossSell:Power_of_Attorney"),
1628
- comments("CrossSell:Power_of_Attorney", false, {
1629
- label: "Description:",
1630
- placeholder: "Please describe your situation in a few words...",
1631
- inputClass: "!t-h-16",
1632
- }),
1633
- ],
1634
- updates
1635
- )
1636
- }
1637
-
1638
- function willsAndTrustsCrossSellQuestions(updates = {}) {
1639
- return step(
1640
- "willsAndTrustsCrossSellQuestions",
1641
- [
1642
- crossSellQuestionsStepHeadline({ headline: "Will or Trust Information" }),
1643
- WillsAndTrustsQuestions("true", "CrossSell:Wills_and_Trusts"),
1644
- comments("CrossSell:Wills_and_Trusts", false, {
1645
- label: "Description:",
1646
- placeholder: "Please describe your situation in a few words...",
1647
- inputClass: "!t-h-16",
1648
- }),
1649
- ],
1650
- updates
1651
- )
1652
- }
1653
-
1654
- function workersCompensationCrossSellQuestions(updates = {}) {
1655
- return step(
1656
- "workersCompensationCrossSellQuestions",
1657
- [
1658
- crossSellQuestionsStepHeadline({
1659
- headline: "You May Be Entitled To Benefits",
1660
- }),
1661
- crossSellQuestionsStepSubHeadline({
1662
- subheadline: "Tell us about your injury:",
1663
- }),
1664
- WorkersCompensationQuestions("true", "CrossSell:Workers_Compensation"),
1665
- comments("CrossSell:Workers_Compensation", false, {
1666
- label: "Injury Description:",
1667
- placeholder: "Please describe your injury in a few words...",
1668
- inputClass: "!t-h-16",
1669
- }),
1670
- ],
1671
- updates
1672
- )
1673
- }
1674
-
1675
- function legalCrossSells(updates = {}) {
1676
- updates.nextOnInput = false;
1677
- updates.stepKey = "$get(Type_Of_Legal_Problem).value";
1678
- return step("legalCrossSells", [legalCrossSellsStepHeadline(updates), legalCrossSells$1()], updates)
1679
- }
1680
-
1681
725
  function haveAttorney(updates = {}) {
1682
726
  return sqstep(
1683
727
  "haveAttorney",
@@ -1696,9 +740,9 @@ function degreeOfInterest(updates = {}) {
1696
740
  )
1697
741
  }
1698
742
 
1699
- function businessServicesDisplay(updates = {}) {
743
+ function businessServicesFirstStep(updates = {}) {
1700
744
  return step(
1701
- "businessServicesDisplay",
745
+ "businessServicesFirstStep",
1702
746
  [
1703
747
  {
1704
748
  $formkit: "hidden",
@@ -1712,13 +756,7 @@ function businessServicesDisplay(updates = {}) {
1712
756
  id: "Have_Attorney",
1713
757
  value: "No",
1714
758
  },
1715
- {
1716
- $formkit: "hidden",
1717
- name: "Business_Services",
1718
- id: "Business_Services",
1719
- value: "Other",
1720
- },
1721
- businessServicesDisplay$1(updates.scope, true, updates.input),
759
+ businessServicesDisplay(updates.scope, true, updates.input),
1722
760
  ],
1723
761
  updates
1724
762
  )
@@ -1742,13 +780,17 @@ function numEmployeesOfBusiness(updates = {}) {
1742
780
  )
1743
781
  }
1744
782
 
1745
- const formNavigation = (updates = {}) => ({
783
+ const formNavigationNoFinalBack = (updates = {}) => ({
1746
784
  $el: "div",
1747
785
  attrs: {
1748
786
  class: {
1749
787
  if: "$activeStep === $firstStep()",
1750
788
  then: "step-nav " + (updates.firstStepButtonClass || "!t-justify-center sm:!t-justify-between"),
1751
- else: "step-nav !t-justify-between",
789
+ else: {
790
+ if: "$activeStep === $lastStep()",
791
+ then: "step-nav !t-justify-center ",
792
+ else: "step-nav !t-justify-between",
793
+ },
1752
794
  },
1753
795
  },
1754
796
  children: [
@@ -1758,12 +800,12 @@ const formNavigation = (updates = {}) => ({
1758
800
  onClick: "$setPreviousStep($prevStepFunc($get(form)))",
1759
801
  children: "Back",
1760
802
  outerClass: {
1761
- if: "$activeStep === $firstStep()",
803
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
1762
804
  then: "t-hidden sm:t-block",
1763
805
  else: "",
1764
806
  },
1765
807
  style: {
1766
- if: "$activeStep === $firstStep()",
808
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
1767
809
  then: "display: none;",
1768
810
  },
1769
811
  classes: {
@@ -1802,7 +844,8 @@ const formNavigation = (updates = {}) => ({
1802
844
  then: "display: none;",
1803
845
  },
1804
846
  classes: {
1805
- input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto f-navigation-input",
847
+ input: (updates.inputClass || "") + " f-navigation-input !t-w-60",
848
+ outer: "!t-mt-0 !t-mb-0",
1806
849
  },
1807
850
  },
1808
851
  ],
@@ -2089,35 +1132,6 @@ function legalRedirectMap(updates) {
2089
1132
  return merge(legalRedirectMapDefaults, updates)
2090
1133
  }
2091
1134
 
2092
- const businessServicesOverrideMap = {
2093
- Business_Services_Display: {
2094
- "Business Formation": {
2095
- Business_Services: "Business Formation",
2096
- },
2097
- Contracts: {
2098
- Business_Services: "Contracts",
2099
- },
2100
- "Insurance and Liability": {
2101
- Business_Services: "Insurance and Liability",
2102
- },
2103
- "Mergers and Acquisition": {
2104
- Business_Services: "Mergers and Acquisition",
2105
- },
2106
- "Regulatory Compliance": {
2107
- Business_Services: "Regulatory Compliance",
2108
- },
2109
- "Employee Dispute": {
2110
- Business_Services: "Employee Dispute",
2111
- },
2112
- "Advice and Consulting": {
2113
- Business_Services: "Other",
2114
- },
2115
- Other: {
2116
- Business_Services: "Other",
2117
- },
2118
- },
2119
- };
2120
-
2121
1135
  const TOLPCommentsPlaceholders = {
2122
1136
  Adoption: 'Example: "I need help with adoption forms"',
2123
1137
  "Asbestos and Mesothelioma": 'Example: "I was exposed to asbestos at work and would like to file a claim"',
@@ -2349,6 +1363,14 @@ const nextStepsLegalNoHA = [
2349
1363
  "contactInfo",
2350
1364
  ];
2351
1365
 
1366
+ const nextStepsLegalNoHANoCrossSells = [
1367
+ "degreeOfInterest",
1368
+ "commentsWithBankruptcy",
1369
+ "zipcode",
1370
+ "firstAndLast",
1371
+ "contactInfo",
1372
+ ];
1373
+
2352
1374
  const nextStepsMapGeneralLegal = {
2353
1375
  values: {
2354
1376
  Type_Of_Legal_Problem: {
@@ -2559,7 +1581,7 @@ const TOLPNextSteps = nextStepsMapGeneralLegal["values"]["Type_Of_Legal_Problem"
2559
1581
 
2560
1582
  const nextStepsMapBusinessServicesDisplay = {
2561
1583
  values: {
2562
- "*": ["businessType", "numEmployeesOfBusiness", ...nextStepsLegalNoHA],
1584
+ "*": ["businessType", "numEmployeesOfBusiness", ...nextStepsLegalNoHANoCrossSells],
2563
1585
  },
2564
1586
  };
2565
1587
 
@@ -2730,36 +1752,7 @@ filterNextStepsMap(
2730
1752
  }
2731
1753
  );
2732
1754
 
2733
- const nextStepsMapLegalCrossSells = {
2734
- values: {
2735
- Legal_CrossSells: {
2736
- "Auto and Car Accidents": ["autoAndCarAccidentCrossSellQuestions"],
2737
- "Personal Injury": ["personalInjuryCrossSellQuestions"],
2738
- "Workers Compensation": ["workersCompensationCrossSellQuestions"],
2739
- "DUI and DWI": ["duiAndDWICrossSellQuestions"],
2740
- "Long Term Disability": ["longTermDisabilityCrossSellQuestions"],
2741
- "Social Security Disability and Insurance": ["ssdiCrossSellQuestions"],
2742
- Bankruptcy: ["bankruptcyCrossSellQuestions"],
2743
- "Power of Attorney": ["powerOfAttorneyCrossSellQuestions"],
2744
- "Wills and Trusts": ["willsAndTrustsCrossSellQuestions"],
2745
- "Divorce and Separation": ["divorceAndSeparationCrossSellQuestions"],
2746
- "Child Custody": ["childCustodyCrossSellQuestions"],
2747
- },
2748
- "*": ["firstAndLast", "contactInfo"],
2749
- },
2750
-
2751
- // NOTE: this assumes a certain placement of the cross sell question
2752
- // in the form flow.
2753
- appendSteps: ["firstAndLast", "contactInfo"],
2754
- matchesAllowed: 1,
2755
- };
2756
-
2757
- const legalCrossSellOptionMap = CROSS_SELL_OPTION_MAP_LEGAL;
2758
-
2759
- const tolps = [
2760
- 'Business Lawyers',
2761
- 'Not Sure or Other'
2762
- ];
1755
+ const tolps = ["Business Lawyers", "Not Sure or Other"];
2763
1756
 
2764
1757
  const meta = defaultMetaPropsLegal(tolps);
2765
1758
 
@@ -2769,28 +1762,15 @@ meta.data.dynamicSchema = [
2769
1762
  haveAttorney(),
2770
1763
  numEmployeesOfBusiness(),
2771
1764
  zipcode({
2772
- help: 'We try to match you with local help'
1765
+ help: "We try to match you with local help",
2773
1766
  }),
2774
1767
  commentsWithBankruptcy({
2775
1768
  label: null,
2776
- headline: 'Please briefly describe your situation:',
2777
- headlineClass: '!t-text-dark',
2778
- }),
2779
- legalCrossSells({
2780
- headlineClass: '!t-text-dark',
2781
- nextStepMap: nextStepsMapLegalCrossSells,
1769
+ headline: "Please briefly describe your situation:",
1770
+ headlineClass: "!t-text-dark",
2782
1771
  }),
2783
- autoAndCarAccidentCrossSellQuestions(),
2784
- personalInjuryCrossSellQuestions(),
2785
- workersCompensationCrossSellQuestions(),
2786
- duiAndDWICrossSellQuestions(),
2787
- ssdiCrossSellQuestions(),
2788
- powerOfAttorneyCrossSellQuestions(),
2789
- willsAndTrustsCrossSellQuestions(),
2790
- divorceAndSeparationCrossSellQuestions(),
2791
- childCustodyCrossSellQuestions(),
2792
- firstAndLastV3({
2793
- headlineClass: '!t-text-dark'
1772
+ firstAndLastV4({
1773
+ headlineClass: "!t-text-dark",
2794
1774
  }),
2795
1775
  ];
2796
1776
 
@@ -2798,52 +1778,55 @@ const schema = [
2798
1778
  meta,
2799
1779
  formAnchor(),
2800
1780
  {
2801
- $cmp: 'FormKit',
1781
+ $cmp: "FormKit",
2802
1782
  props: formProps({
2803
- formId: 'business',
1783
+ formId: "business",
2804
1784
  redirectMap: legalRedirectMap({
2805
- 'properties.Business_Services_Display': {
2806
- 'Business Formation': RedirectUrl('zipanswers.com', 'Legal', 'Business Formation', 9),
2807
- }
1785
+ // Uncomment to have it redirect after S1 for this selection
1786
+ // "properties.Business_Services_Display": {
1787
+ // "Business Formation": RedirectUrl("zipanswers.com", "Legal", "Business Formation", 9),
1788
+ // },
2808
1789
  }),
2809
- valueOverrideMap: businessServicesOverrideMap,
2810
- crossSellOptionMap: legalCrossSellOptionMap
2811
1790
  }),
2812
1791
  children: [
2813
1792
  progressBar(),
2814
1793
  headline({
2815
1794
  children: '$urlParam("hl", "Need Help? Start Here!")',
2816
- if: '$activeStep === $firstStep()'
1795
+ if: "$activeStep === $firstStep()",
2817
1796
  }),
2818
1797
  defaultSubHeadline(),
2819
1798
  ...hiddenInputsLegal,
2820
1799
  {
2821
- $el: 'div',
1800
+ $el: "div",
2822
1801
  attrs: {
2823
- class: 'form-body'
1802
+ class: "form-body",
2824
1803
  },
2825
1804
  children: [
2826
- businessServicesDisplay({
1805
+ businessServicesFirstStep({
2827
1806
  nextOnInput: false,
2828
- headlineClass: 't-text-lg',
1807
+ headlineClass: "t-text-lg",
2829
1808
  nextStepMap: nextStepsMapBusinessServicesDisplay,
2830
- triggerRedirectMap: {
2831
- 'Business_Services_Display': {
2832
- 'Business Formation': {},
2833
- }
2834
- },
1809
+ // Uncomment to have it redirect after S1 for this selection
1810
+ // triggerRedirectMap: {
1811
+ // 'Business_Services_Display': {
1812
+ // 'Business Formation': {},
1813
+ // }
1814
+ // },
2835
1815
  }),
2836
1816
  dynamicSchemaNode(),
2837
- contactInfo({
2838
- headline: 'Connect Today - Final Step',
2839
- subheadline: 'You may benefit from speaking with a professional. Please verify your contact information.'
1817
+ contactInfoV2({
1818
+ headline: "Help Your Business Today",
1819
+ subheadline: "Get a no-obligation consultation with a legal expert.",
2840
1820
  }),
2841
- formNavigation(),
2842
- formDetails()
2843
- ]
2844
- }
2845
- ]
2846
- }
1821
+ formNavigationNoFinalBack({
1822
+ firstStepButtonClass: "!t-justify-center",
1823
+ inputClass: "!t-font-extrabold",
1824
+ }),
1825
+ formDetails(),
1826
+ ],
1827
+ },
1828
+ ],
1829
+ },
2847
1830
  ];
2848
1831
 
2849
1832
  export { schema as default };