bhl-forms 0.9.4 → 0.10.0

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 (74) hide show
  1. package/dist/bhl-forms.es.js +3262 -3005
  2. package/dist/bhl-forms.iife.js +4 -4
  3. package/dist/bhl-forms.modern.es.js +5189 -4925
  4. package/dist/bhl-forms.modern.iife.js +7 -7
  5. package/dist/bhl-forms.modern.umd.js +7 -7
  6. package/dist/bhl-forms.umd.js +4 -4
  7. package/dist/forms/accidentsAndInjuries.es.js +13 -8
  8. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  9. package/dist/forms/applianceRepairMinimal.es.js +96 -229
  10. package/dist/forms/applianceRepairMinimal.iife.js +1 -1
  11. package/dist/forms/business.es.js +13 -8
  12. package/dist/forms/business.iife.js +1 -1
  13. package/dist/forms/childAndFamily.es.js +13 -8
  14. package/dist/forms/childAndFamily.iife.js +1 -1
  15. package/dist/forms/childAndFamilySingle.es.js +13 -8
  16. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  17. package/dist/forms/civilLawsuit.es.js +13 -8
  18. package/dist/forms/civilLawsuit.iife.js +1 -1
  19. package/dist/forms/contracts.es.js +13 -8
  20. package/dist/forms/contracts.iife.js +1 -1
  21. package/dist/forms/criminal.es.js +13 -8
  22. package/dist/forms/criminal.iife.js +1 -1
  23. package/dist/forms/divorce.es.js +13 -8
  24. package/dist/forms/divorce.iife.js +1 -1
  25. package/dist/forms/employmentAndWorkplace.es.js +13 -8
  26. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  27. package/dist/forms/foreclosure.es.js +13 -8
  28. package/dist/forms/foreclosure.iife.js +1 -1
  29. package/dist/forms/generalContractors.es.js +14 -9
  30. package/dist/forms/generalContractors.iife.js +1 -1
  31. package/dist/forms/generalHomeImprovement.es.js +14 -9
  32. package/dist/forms/generalHomeImprovement.iife.js +1 -1
  33. package/dist/forms/generalHomeImprovementThankYou.es.js +14 -9
  34. package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
  35. package/dist/forms/generalLegal.es.js +13 -8
  36. package/dist/forms/generalLegal.iife.js +1 -1
  37. package/dist/forms/generalLegalJustAnswer.es.js +13 -8
  38. package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
  39. package/dist/forms/generalLegalPopUnder.es.js +13 -8
  40. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  41. package/dist/forms/generalLegalPopUnderSingle.es.js +13 -8
  42. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  43. package/dist/forms/generalLegalSingle.es.js +13 -8
  44. package/dist/forms/generalLegalSingle.iife.js +1 -1
  45. package/dist/forms/generalLegalThankYou.es.js +13 -8
  46. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  47. package/dist/forms/generalLegalThankYouConsultation.es.js +13 -8
  48. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  49. package/dist/forms/harassmentAndDiscrimination.es.js +13 -8
  50. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  51. package/dist/forms/landlordTenant.es.js +13 -8
  52. package/dist/forms/landlordTenant.iife.js +1 -1
  53. package/dist/forms/malpractice.es.js +13 -8
  54. package/dist/forms/malpractice.iife.js +1 -1
  55. package/dist/forms/mechanics.es.js +13 -8
  56. package/dist/forms/mechanics.iife.js +1 -1
  57. package/dist/forms/patentsAndIP.es.js +13 -8
  58. package/dist/forms/patentsAndIP.iife.js +1 -1
  59. package/dist/forms/realEstate.es.js +13 -8
  60. package/dist/forms/realEstate.iife.js +1 -1
  61. package/dist/forms/repossession.es.js +13 -8
  62. package/dist/forms/repossession.iife.js +1 -1
  63. package/dist/forms/ssdi.es.js +13 -8
  64. package/dist/forms/ssdi.iife.js +1 -1
  65. package/dist/forms/testForm.es.js +13 -8
  66. package/dist/forms/testForm.iife.js +1 -1
  67. package/dist/forms/willsAndTrusts.es.js +13 -8
  68. package/dist/forms/willsAndTrusts.iife.js +1 -1
  69. package/dist/forms/windows.es.js +14 -9
  70. package/dist/forms/windows.iife.js +1 -1
  71. package/dist/forms/workersCompensation.es.js +13 -8
  72. package/dist/forms/workersCompensation.iife.js +1 -1
  73. package/dist/main.css +1 -1
  74. package/package.json +2 -2
@@ -1,4 +1,3 @@
1
- const DEFAULT_COMMENTS_LABEL = "Please briefly describe your issue in a few words:";
2
1
  const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC =
3
2
  '$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)';
4
3
  const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL =
@@ -53,75 +52,66 @@ const verticalText = (updates) => {
53
52
  return text(updates)
54
53
  };
55
54
 
56
- const textArea = (updates) => {
57
- if (updates.name && !updates.id) {
58
- updates.id = updates.name;
59
- }
60
- return merge(
61
- {
62
- $formkit: "textarea",
63
- rows: 5,
64
- maxlength: 500,
65
- validation: "required",
66
- validationMessages: {
67
- required: "Field is required",
68
- },
69
- innerClass: "t-max-w-xl",
70
- labelClass: "required",
71
- },
72
- updates
73
- )
74
- };
75
-
76
- const firstName = (scope, vertical, updates = {}) => {
77
- const func = vertical ? verticalText : sbsText;
78
- const label = vertical ? updates.label : "First Name:";
79
- return func({
80
- label,
81
- placeholder: "First",
55
+ const firstNameFL = (scope, updates = {}) => {
56
+ return text({
57
+ $formkit: "FloatingLabelText",
58
+ placeholder: "First Name",
82
59
  name: scope ? scope + ":" + "First_Name" : "First_Name",
83
60
  autocomplete: "given-name",
84
61
  validationMessages: {
85
62
  required: "First Name is required",
86
63
  },
64
+ inputClass: "t-text-center",
87
65
  ...updates,
88
66
  })
89
67
  };
90
68
 
91
- const lastName = (scope, vertical, updates = {}) => {
92
- const func = vertical ? verticalText : sbsText;
93
- const label = vertical ? updates.label : "Last Name:";
94
- return func({
95
- label,
96
- placeholder: "Last",
69
+ const lastNameFL = (scope, updates = {}) => {
70
+ return text({
71
+ $formkit: "FloatingLabelText",
72
+ placeholder: "Last Name",
97
73
  name: scope ? scope + ":" + "Last_Name" : "Last_Name",
98
74
  autocomplete: "family-name",
99
75
  validationMessages: {
100
76
  required: "Last Name is required",
101
77
  },
78
+ inputClass: "t-text-center",
102
79
  ...updates,
103
80
  })
104
81
  };
105
82
 
106
- const phone = (scope, vertical, updates = {}) => {
107
- const func = vertical ? verticalText : sbsText;
108
- const label = vertical ? updates.label : "Phone Number:";
109
- return func({
110
- $formkit: "tel",
83
+ const fullNameFL = (scope, updates = {}) => {
84
+ return {
85
+ $el: "div",
86
+ attrs: {
87
+ class: "t-flex t-flex-row t-flex-wrap t-gap-x-[2%] t-justify-center t-max-w-[95%] sm:!t-max-w-[70%]",
88
+ },
89
+ children: [
90
+ firstNameFL(scope, { outerClass: "!t-max-w-[48%] sm:!t-max-w-[49%]", ...updates }),
91
+ lastNameFL(scope, { outerClass: "!t-max-w-[48%] sm:!t-max-w-[49%]", ...updates }),
92
+ ],
93
+ }
94
+ };
95
+
96
+ const phoneFL = (scope, updates = {}) => {
97
+ return text({
98
+ $formkit: "FloatingLabelText",
99
+ datatype: "tel",
111
100
  name: scope ? scope + ":" + "Primary_Phone" : "Primary_Phone",
112
- label,
113
- placeholder: "###-###-####",
114
- maxlength: 12,
115
- help: "10-digit phone number, hyphens optional",
101
+ placeholder: updates.placeholder || "Phone Number",
102
+ maxlength: 14,
103
+ help: updates.help || null,
116
104
  autocomplete: "tel-national",
117
105
  "data-tf-sensitive": "false",
118
- validation: "required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",
106
+ validation: "required|matches:/^[0-9]{3}[0-9]{3}[0-9]{4}$/|valid_phone",
119
107
  validationMessages: {
120
108
  required: "Phone Number is required",
121
- matches: "Invalid Phone Format, use ###-###-####",
109
+ matches: "Invalid Phone Format, use (XXX) YYY-ZZZZ",
122
110
  valid_phone: "Invalid Phone Number",
123
111
  },
124
112
  helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]",
113
+ inputClass: "t-text-center",
114
+ wrapperClass: "t-flex t-justify-center",
125
115
  ...updates,
126
116
  })
127
117
  };
@@ -147,21 +137,7 @@ const zipcode = (scope, vertical, updates = {}) => {
147
137
  })
148
138
  };
149
139
 
150
- // TODO: vertical not supported yet
151
- const comments = (scope, vertical, updates) =>
152
- textArea(
153
- merge(
154
- {
155
- name: scope ? scope + ":" + "Comments" : "Comments",
156
- label: "Please briefly describe your situation in a few words:",
157
- placeholder:
158
- 'For Example: "I would like help with child support payments" or "I need help with visitation rights"',
159
- },
160
- updates
161
- )
162
- );
163
-
164
- const TCPAConsent = (scope) => ({
140
+ const TCPAConsent = (scope, updates = {}) => ({
165
141
  $formkit: "checkbox",
166
142
  label: "$meta.tcpaLanguage",
167
143
  // Necessary to get links to work in the tcpa language
@@ -176,7 +152,12 @@ const TCPAConsent = (scope) => ({
176
152
  accepted: "Consent is required",
177
153
  },
178
154
  classes: {
179
- label: "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]",
155
+ outer: updates.outerClass ? updates.outerClass : "",
156
+ wrapper: updates.wrapperClass ? updates.wrapperClass : "",
157
+ messages: updates.messagesClass ? updates.messagesClass : "",
158
+ label:
159
+ "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]" +
160
+ (updates.labelClass ? " " + updates.labelClass : ""),
180
161
  },
181
162
  });
182
163
 
@@ -237,46 +218,25 @@ const secureIconDefault = {
237
218
  ],
238
219
  };
239
220
 
240
- function secureIcon(updates) {
221
+ function secureIcon(updates = {}) {
241
222
  return merge(secureIconDefault, updates)
242
223
  }
243
224
 
244
- function verticalStepSubHeadline(updates) {
245
- return {
246
- $el: "h5",
247
- children: updates.subheadline || "",
248
- attrs: {
249
- class:
250
- "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" +
251
- " " +
252
- (updates.subheadlineClass || ""),
253
- },
254
- }
255
- }
256
-
257
- function commentsStepHeadline(updates) {
258
- return {
259
- $el: "h3",
260
- children: updates.headline || "Additional Details",
261
- attrs: {
262
- class:
263
- "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
264
- " " +
265
- (updates.headlineClass || ""),
266
- },
267
- }
268
- }
269
-
270
- function firstAndLastStepHeadline(updates) {
225
+ function secureIconStandalone(updates = {}) {
271
226
  return {
272
- $el: "h3",
273
- children: updates.headline || "Please Provide a Contact Name",
274
- attrs: {
275
- class:
276
- "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
277
- " " +
278
- (updates.headlineClass || ""),
227
+ if: "$activeStep === $lastStep()",
228
+ style: {
229
+ if: "$activeStep !== $lastStep()",
230
+ then: "display: none;",
279
231
  },
232
+ children: [
233
+ secureIcon({
234
+ attrs: {
235
+ class: "t-flex t-justify-center t-items-center t-text-sm t-text-gray-500 t-pb-4 sm:t-pb-8",
236
+ },
237
+ ...updates,
238
+ }),
239
+ ],
280
240
  }
281
241
  }
282
242
 
@@ -300,7 +260,7 @@ function contactStepSubHeadline(updates) {
300
260
  children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
301
261
  attrs: {
302
262
  class:
303
- "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3" +
263
+ "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-6 t-pt-0 t-px-3" +
304
264
  " " +
305
265
  (updates.subheadlineClass || "") +
306
266
  " f-contact-info-subheadline",
@@ -376,54 +336,33 @@ function step(name, inputs, updates = {}) {
376
336
  })
377
337
  }
378
338
 
379
- function commentsHeadline(updates = {}) {
380
- const mergedUpdates = { ...updates, nextOnEnter: false };
381
-
382
- return step(
383
- "comments",
384
- [
385
- commentsStepHeadline(updates),
386
- comments(updates.scope, false, {
387
- label: typeof updates.label === "undefined" ? DEFAULT_COMMENTS_LABEL : updates.label,
388
- placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
389
- inputClass: typeof updates.inputClass === "undefined" ? "!t-h-32" : updates.inputClass,
390
- }),
391
- ],
392
- mergedUpdates
393
- )
394
- }
395
-
396
- function contactInfoNoEmail(updates = {}) {
339
+ function contactInfoNameNoEmail(updates = {}) {
397
340
  return step(
398
341
  "contactInfo",
399
342
  [
400
343
  contactStepHeadline(updates),
401
344
  contactStepSubHeadline(updates),
402
345
  trustedFormScript(),
403
- phone(updates.scope, true),
404
- TCPAConsent(updates.scope),
405
- secureIcon(),
406
- ],
407
- { nextOnEnter: false }
408
- )
409
- }
410
-
411
- function firstAndLastV3(updates = {}) {
412
- return step(
413
- "firstAndLast",
414
- [
415
- firstAndLastStepHeadline({
416
- headline: updates.headline ?? "Who is looking for help?",
417
- headlineClass: updates.headlineClass,
418
- }),
419
- verticalStepSubHeadline({
420
- subheadline: updates.subheadline ?? "Note: we never share info without consent",
421
- subheadlineClass: "!t-text-sm !t-text-gray-500",
346
+ {
347
+ $el: "div",
348
+ attrs: {
349
+ class: "t-flex t-flex-col t-justify-center t-items-center",
350
+ },
351
+ children: [
352
+ fullNameFL(updates.scope),
353
+ phoneFL(updates.scope, {
354
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
355
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
356
+ }),
357
+ ],
358
+ },
359
+ TCPAConsent(updates.scope, {
360
+ outerClass: "!t-flex !t-flex-col !t-justify-center !t-items-center",
361
+ wrapperClass: "t-w-[95%] sm:t-w-[75%]",
362
+ messagesClass: "t-w-[95%] sm:t-w-[75%]",
422
363
  }),
423
- firstName(updates.scope),
424
- lastName(updates.scope),
425
364
  ],
426
- updates
365
+ { nextOnEnter: false }
427
366
  )
428
367
  }
429
368
 
@@ -443,13 +382,17 @@ function applianceRepairFirstStep(updates = {}) {
443
382
  )
444
383
  }
445
384
 
446
- const formNavigation = (updates = {}) => ({
385
+ const formNavigationNoFinalBack = (updates = {}) => ({
447
386
  $el: "div",
448
387
  attrs: {
449
388
  class: {
450
389
  if: "$activeStep === $firstStep()",
451
390
  then: "step-nav " + (updates.firstStepButtonClass || "!t-justify-center sm:!t-justify-between"),
452
- else: "step-nav !t-justify-between",
391
+ else: {
392
+ if: "$activeStep === $lastStep()",
393
+ then: "step-nav !t-justify-center ",
394
+ else: "step-nav !t-justify-between",
395
+ },
453
396
  },
454
397
  },
455
398
  children: [
@@ -461,11 +404,19 @@ const formNavigation = (updates = {}) => ({
461
404
  outerClass: {
462
405
  if: "$activeStep === $firstStep()",
463
406
  then: "t-hidden sm:t-block",
464
- else: "",
407
+ else: {
408
+ if: "$activeStep === $lastStep()",
409
+ then: "t-hidden sm:t-block",
410
+ else: "",
411
+ },
465
412
  },
466
413
  style: {
467
414
  if: "$activeStep === $firstStep()",
468
415
  then: "display: none;",
416
+ else: {
417
+ if: "$activeStep === $lastStep()",
418
+ then: "display: none;",
419
+ },
469
420
  },
470
421
  classes: {
471
422
  input: (updates.inputClass || "") + " f-navigation-input",
@@ -503,7 +454,8 @@ const formNavigation = (updates = {}) => ({
503
454
  then: "display: none;",
504
455
  },
505
456
  classes: {
506
- input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto f-navigation-input",
457
+ input: (updates.inputClass || "") + " f-navigation-input !t-w-60",
458
+ outer: "!t-mt-0 !t-mb-0",
507
459
  },
508
460
  },
509
461
  ],
@@ -625,17 +577,6 @@ function defaultMetaPropsHomeImprovement(category = null) {
625
577
  })
626
578
  }
627
579
 
628
- function dynamicSchemaNode(field = "Type_Of_Legal_Problem") {
629
- return {
630
- $cmp: "FormKitSchema",
631
- if: "$get(" + field + ").value",
632
- props: {
633
- schema: "$meta.dynamicSchema",
634
- data: "$buildData($meta)",
635
- },
636
- }
637
- }
638
-
639
580
  const formAnchorDefaults = {
640
581
  $el: "div",
641
582
  children: [
@@ -657,58 +598,6 @@ function formAnchor(updates) {
657
598
  return merge(formAnchorDefaults, updates)
658
599
  }
659
600
 
660
- const progressBarDefaults = {
661
- $el: "div",
662
- attrs: {
663
- class: "t-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center",
664
- style: {
665
- if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
666
- then: "display: none",
667
- },
668
- },
669
- children: [
670
- {
671
- $el: "div",
672
- attrs: {
673
- class: "t-flex t-justify-center",
674
- },
675
- children: [
676
- {
677
- $el: "span",
678
- attrs: {
679
- id: "progress-bar-text",
680
- class: "t-text-sm t-mb-1",
681
- },
682
- children: ["0% Complete"],
683
- },
684
- ],
685
- },
686
- {
687
- $el: "div",
688
- attrs: {
689
- class: "t-bg-gray-100 t-w-9/12 t-rounded",
690
- },
691
- children: [
692
- {
693
- $el: "div",
694
- attrs: {
695
- id: "progress-bar",
696
- class:
697
- "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]",
698
- style: {
699
- transition: "width 0.5s ease",
700
- },
701
- },
702
- },
703
- ],
704
- },
705
- ],
706
- };
707
-
708
- function progressBar(updates) {
709
- return merge(progressBarDefaults, updates)
710
- }
711
-
712
601
  function headlineDefaults(updates = {}) {
713
602
  return {
714
603
  $el: "h1",
@@ -895,7 +784,7 @@ const HomeImprovementFinalHeadlines = {
895
784
 
896
785
  const HomeImprovementFinalSubHeadlines = {
897
786
  // 'Additions': '',
898
- Appliances: "What is the best number to reach you?",
787
+ Appliances: "Who needs appliance help?",
899
788
  // 'Appraisals': '',
900
789
  // 'Cabinets': '',
901
790
  // 'Carpentry': '',
@@ -950,28 +839,8 @@ const HomeImprovementFinalSubHeadlines = {
950
839
  // 'Windows': '',
951
840
  };
952
841
 
953
- const nextStepsMapApplianceRepairMinimal = {
954
- values: {
955
- // Custom because we ask zip on s1
956
- "*": ["comments", "firstAndLast", "contactInfo"],
957
- },
958
- };
959
-
960
842
  const meta = defaultMetaPropsHomeImprovement();
961
843
 
962
- meta.data.dynamicSchema = [
963
- commentsHeadline({
964
- label: null,
965
- headline: "Please describe your appliance issue:",
966
- headlineClass: "!t-text-dark",
967
- }),
968
- firstAndLastV3({
969
- headline: "Who needs appliance help?",
970
- headlineClass: "!t-text-dark",
971
- subheadline: "",
972
- }),
973
- ];
974
-
975
844
  const schema = [
976
845
  meta,
977
846
  formAnchor(),
@@ -984,7 +853,6 @@ const schema = [
984
853
  },
985
854
  }),
986
855
  children: [
987
- progressBar(),
988
856
  headline({
989
857
  children: '$urlParam("hl", "Get Started Here!")',
990
858
  if: "$activeStep === $firstStep()",
@@ -1004,23 +872,22 @@ const schema = [
1004
872
  applianceRepairFirstStep({
1005
873
  nextOnInput: false,
1006
874
  headlineClass: "t-text-lg",
1007
- nextStepMap: nextStepsMapApplianceRepairMinimal,
1008
875
  input: {
1009
876
  help: null,
1010
877
  },
1011
878
  }),
1012
- dynamicSchemaNode("Category"),
1013
- contactInfoNoEmail({
879
+ contactInfoNameNoEmail({
1014
880
  headlineClass: "!t-text-[#465f87]",
1015
881
  subheadlineClass: "!t-text-[#353739]",
1016
882
  headline: DEFAULT_FINAL_HEADLINE_DYNAMIC_HOME_IMPROVEMENT,
1017
883
  subheadline: DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_HOME_IMPROVEMENT,
1018
884
  }),
1019
- formNavigation({
885
+ formNavigationNoFinalBack({
1020
886
  startText: "Schedule Now",
1021
887
  inputClass: "!t-text-black !t-font-extrabold !t-bg-[#ffce51]",
1022
888
  firstStepButtonClass: "!t-justify-center",
1023
889
  }),
890
+ secureIconStandalone(),
1024
891
  formDetails(),
1025
892
  ],
1026
893
  },
@@ -1 +1 @@
1
- var applianceRepairMinimal=function(){"use strict";const e='$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)',t='$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)',a='$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)',n=e;function i(){return Object.assign({},...arguments)}const l=e=>(e.name&&!e.id&&(e.id=e.name),i({$formkit:"text",validation:"required",validationMessages:{required:"Field is required"},labelClass:"required"},e)),r=e=>(e.wrapperClass="side-by-side t-items-center",l(e)),s=e=>(e.wrapperClass="t-flex t-justify-center",e.messagesClass="t-flex t-justify-center",e.inputClass="t-text-center",e.helpClass="t-mt-2.5 !t-text-sm t-text-center",l(e)),o=(e,t,a={})=>(t?s:r)({label:t?a.label:"First Name:",placeholder:"First",name:e?e+":First_Name":"First_Name",autocomplete:"given-name",validationMessages:{required:"First Name is required"},...a}),d=(e,t,a={})=>(t?s:r)({label:t?a.label:"Last Name:",placeholder:"Last",name:e?e+":Last_Name":"Last_Name",autocomplete:"family-name",validationMessages:{required:"Last Name is required"},...a}),c=(e,t,a={})=>(t?s:r)({$formkit:"tel",name:e?e+":Primary_Phone":"Primary_Phone",label:t?a.label:"Phone Number:",placeholder:"###-###-####",maxlength:12,help:"10-digit phone number, hyphens optional",autocomplete:"tel-national","data-tf-sensitive":"false",validation:"required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",validationMessages:{required:"Phone Number is required",matches:"Invalid Phone Format, use ###-###-####",valid_phone:"Invalid Phone Number"},helpClass:"t-mt-2.5 md:t-text-right md:t-mt-[-2px]",...a}),m=(e,t,a={})=>(t?s:r)({label:t?a.label:"Zip Code:",help:t?a.help??"We try to match you with local help":null,placeholder:"#####",name:e?e+":Zip":"Zip",maxlength:5,inputmode:"numeric",autocomplete:"postal-code",validation:"required|matches:/^[0-9]{5}$/",validationMessages:{required:"Zip Code is required",matches:"Invalid Zip Code"},...a}),p=(e,t,a)=>(e=>(e.name&&!e.id&&(e.id=e.name),i({$formkit:"textarea",rows:5,maxlength:500,validation:"required",validationMessages:{required:"Field is required"},innerClass:"t-max-w-xl",labelClass:"required"},e)))(i({name:e?e+":Comments":"Comments",label:"Please briefly describe your situation in a few words:",placeholder:'For Example: "I would like help with child support payments" or "I need help with visitation rights"'},a)),u="$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))",f="$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))",h=e=>"group"!==e.type&&"section"!==e.type&&"form"!==e.type&&"hidden"!==e.$formkit&&!e.children,x=e=>{if(h(e))return e;for(var t=e.children.length-1;t>=0;t--){if("string"==typeof e.children)continue;const a=e.children[t];if(h(a))return a;const n=x(a);if(n)return n}return null},y={$el:"div",if:"$activeStep === $lastStep()",attrs:{class:"t-flex t-justify-center t-items-center t-text-sm t-text-gray-500"},children:[{$el:"img",attrs:{loading:"lazy",alt:"",style:{border:0},width:"25",height:"25",src:"https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg"}},{$el:"span",children:"Secure & Encrypted",attrs:{class:"t-pl-2 t-pt-1 t-font-medium"}}]};function g(e){return i(y,e)}function b(e){return{$el:"h5",children:e.subheadline||"",attrs:{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 "+(e.subheadlineClass||"")}}}function $(e){return{$el:"h3",children:e.headline||"Additional Details",attrs:{class:"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1 "+(e.headlineClass||"")}}}function v(e){return{$el:"h3",children:e.headline||"Please Provide a Contact Name",attrs:{class:"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1 "+(e.headlineClass||"")}}}function w(e){return{$el:"h3",children:e.headline||t,attrs:{class:"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-3 t-pt-0 t-px-1 "+(e.headlineClass||"")+" f-contact-info-headline"}}}function I(e){return{$el:"h5",children:e.subheadline||a,attrs:{class:"t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3 "+(e.subheadlineClass||"")+" f-contact-info-subheadline"}}}const E="(function() {\n if (window.xxTrustedFormLoaded) {\n return\n }\n var vid = '';\n if (typeof window.zar !== 'undefined') {\n vid = window.zar.getVID();\n }\n window.xxTrustedFormLoaded = true;\n var sandbox = document.location.hostname.indexOf('localhost') > -1 ? 'true' : 'false'\n var tf = document.createElement('script');\n tf.type = 'text/javascript'; tf.async = true;\n tf.src = (\"https:\" == document.location.protocol ? 'https' : 'http') + \"://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&identifier=\" + vid + \"&ping_field=xxTrustedFormPingUrl&provideReferrer=false&invert_field_sensitivity=true&sandbox=\" + sandbox + \"&l=\" + new Date().getTime() + Math.random();\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);\n})();";const C=(e,t)=>({$el:"section",if:'$stepEnabled("'+e+'")',attrs:{hidden:'$activeStep !== "'+e+'"',key:t||e}});function S(e,t,a={}){const{nextOnEnter:n=!0,nextOnInput:l=!1,stepKey:r,nextStepMap:s,triggerRedirectMap:o,autoFocus:d}=a;if(t&&t.length&&(n||l)){const e=x(t[t.length-1]);e&&!0===n&&(e.onKeypress=u),e&&!0===l&&(e.onInput=f)}return i(C(e,r),{children:[{$formkit:"group",id:e,name:e,nextStepMap:s,triggerRedirectMap:o,autoFocus:d,children:t}]})}const k={type:"form",id:"form",config:{validationVisibility:"submit"},onSubmit:'$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',plugins:"$plugins",actions:!1,anchorElement:"form-anchor",useLocalStorage:!0,prepop:{fromURL:!0},errorCodes:{403:{message:"An Error Occurred",abort:!1},409:{abort:!1},429:"An Error Occurred",504:{message:"An Error Occurred",abort:!1}},formClass:"!t-max-w-[40rem]"};function P(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>t.includes(e))))}const _={};const F={$el:"div",children:[{$el:"div",attrs:{id:"form-anchor",class:"t-absolute",style:{top:"-30px",left:0}}}],attrs:{class:"t-relative"}};const H={$el:"div",attrs:{class:"t-mt-7 t-mb-5 t-w-full t-flex t-flex-col t-justify-center t-items-center",style:{if:"$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",then:"display: none"}},children:[{$el:"div",attrs:{class:"t-flex t-justify-center"},children:[{$el:"span",attrs:{id:"progress-bar-text",class:"t-text-sm t-mb-1"},children:["0% Complete"]}]},{$el:"div",attrs:{class:"t-bg-gray-100 t-w-9/12 t-rounded"},children:[{$el:"div",attrs:{id:"progress-bar",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]",style:{transition:"width 0.5s ease"}}}]}]};const q=[{$formkit:"hidden",name:"vertical",value:"HomeImprovement"},{$formkit:"hidden",name:"TCPA_Language",value:"$meta.tcpaLanguage"},{$formkit:"hidden",name:"gclid",value:null},{$formkit:"hidden",name:"campaignid",value:null},{$formkit:"hidden",name:"s",value:null}],j={Additions:'Example: "I would like to add a sunroom to my home"',Appliances:'Example: "I need to repair a dishwasher"',Appraisals:'Example: "I need to get my home appraised"',Cabinets:'Example: "I want to install new kitchen cabinets"',Carpentry:'Example: "I need someone to build custom shelves"',Carpets:'Example: "I want to replace the carpets in my living room"',Cleaning:'Example: "I need a professional cleaning service for my home"',Countertops:'Example: "I want to install granite countertops in my kitchen"',"Decks and Porches":'Example: "I want to build a new deck in my backyard"',Demolition:'Example: "I need to demolish a wall in my home"',Doors:'Example: "I want to replace the front door of my house"',Driveways:'Example: "I need to repair my driveway"',"Drywall and Plaster":'Example: "I need to repair a hole in my drywall"',Electrical:'Example: "I need an electrician to install new light fixtures"',Fencing:'Example: "I want to install a privacy fence in my backyard"',Flooring:'Example: "I want to install hardwood flooring in my living room"',Foundations:'Example: "I need to repair the foundation of my house"',"Garage Doors":'Example: "I want to replace my garage door"',"General Contractors":'Example: "I need a general contractor for a home renovation"',Gutters:'Example: "I need to clean and repair my gutters"',Handyman:'Example: "I need a handyman to fix various things around my house"',"Holiday Decorators":'Example: "I want to hire someone to decorate my home for the holidays"',"Smart Home":'Example: "I want to install a smart home automation system"',"Home Builders":'Example: "I want to build a custom home"',"Home Inspection":'Example: "I need a home inspection before buying a house"',"Home Organization":'Example: "I need help organizing my closets and storage"',"Home Security":'Example: "I want to install a home security system"',"Home Staging":'Example: "I need a home staging service to prepare my house for sale"',"Home Theater":'Example: "I want to set up a home theater system"',"Home Warranties":'Example: "I want to purchase a home warranty"',"Hot Tubs":'Example: "I want to install a hot tub in my backyard"',"Heating and Cooling":'Example: "I need to repair my air conditioning unit"',Insulation:'Example: "I want to improve the insulation in my home"',"Junk Removal":'Example: "I need a service to remove junk and debris from my property"',Landscaping:'Example: "I want to redesign my backyard landscaping"',Locksmiths:'Example: "I need a locksmith to change the locks on my doors"',"Masonry and Concrete":'Example: "I need to repair a cracked concrete driveway"',Restoration:'Example: "I need water damage restoration services"',Moving:'Example: "I need a moving company to help me relocate"',Painting:'Example: "I want to paint the interior walls of my house"',"Pest Control":'Example: "I need pest control services for my home"',Pools:'Example: "I want to install a swimming pool in my backyard"',Plumbing:'Example: "I need a plumber to fix a leaky faucet"',"Pressure Washing":'Example: "I want to pressure wash the exterior of my house"',Remodeling:'Example: "I want to remodel my kitchen"',Roofing:'Example: "I need to repair a leaky roof"',Sheds:'Example: "I want to build a storage shed in my backyard"',Siding:'Example: "I want to replace the siding on my house"',Solar:'Example: "I want to install solar panels on my roof"',Tiling:'Example: "I want to install new tiles in my bathroom"',"Tree Services":'Example: "I need a large tree removed"',"Walk-in Tubs":'Example: "I want to install a walk-in tub in my bathroom"',Waterproofing:'Example: "I need to waterproof my basement"',"Window Cleaning":'Example: "I need a professional window cleaning service"',Windows:'Example: "I want to replace 3 windows in my house"',"Not Sure or Other":'Example: "I need general handyman services"'},L={Appliances:"We Have Appliance Pros Standing By!"},T={Appliances:"What is the best number to reach you?"},N=function(e=null){let t=j,a=L,l=T;return e&&(t=P(j,e),a=P(L,e),l=P(T,e)),{type:"meta",data:i(_,{tcpaLanguage:"By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by contractors and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services.",defaultCommentsPlaceholder:n,commentsPlaceholders:t,defaultFinalHeadline:"We Found Contractors!",finalHeadlines:a,defaultFinalSubHeadline:"Compare quotes and save. Verify contact info:",finalSubHeadlines:l})}}();N.data.dynamicSchema=[function(t={}){const a={...t,nextOnEnter:!1};return S("comments",[$(t),p(t.scope,0,{label:void 0===t.label?"Please briefly describe your issue in a few words:":t.label,placeholder:t.placeholder||e,inputClass:void 0===t.inputClass?"!t-h-32":t.inputClass})],a)}({label:null,headline:"Please describe your appliance issue:",headlineClass:"!t-text-dark"}),function(e={}){return S("firstAndLast",[v({headline:e.headline??"Who is looking for help?",headlineClass:e.headlineClass}),b({subheadline:e.subheadline??"Note: we never share info without consent",subheadlineClass:"!t-text-sm !t-text-gray-500"}),o(e.scope),d(e.scope)],e)}({headline:"Who needs appliance help?",headlineClass:"!t-text-dark",subheadline:""})];const M=[N,i(F,O),{$cmp:"FormKit",props:function(e){const t=i(k,e);return t.formId&&!t.name&&(t.name=t.formId),t}({formId:"applianceRepairMinimal",redirectMap:{"*":"/thank-you"}}),children:[function(e){return i(H,e)}(),function(e={}){return i(function(e={}){return{$el:"h1",attrs:{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 "+(e.headlineClass||"")+" f-first-headline"}}}(e),e)}({children:'$urlParam("hl", "Get Started Here!")',if:"$activeStep === $firstStep()"}),function(e={}){return i(function(e={}){return{$el:"h3",attrs:{class:"t-flex t-justify-center t-text-center t-text-[1.1rem] md:t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10 "+(e.subheadlineClass||"")+" f-first-subheadline"}}}(e),e)}({children:'$urlParam("shl", "Please Enter Your Zip Code:")',if:"$activeStep === $firstStep()",subheadlineClass:"!t-font-bold !t-text-[#465f87]"}),...q,{$el:"div",attrs:{class:"form-body"},children:[function(e={}){return S("applianceRepairFirstStep",[{$formkit:"hidden",name:"Category",id:"Category",value:"Appliances"},m(e.scope,!0,e.input)],e)}({nextOnInput:!1,headlineClass:"t-text-lg",nextStepMap:{values:{"*":["comments","firstAndLast","contactInfo"]}},input:{help:null}}),function(e="Type_Of_Legal_Problem"){return{$cmp:"FormKitSchema",if:"$get("+e+").value",props:{schema:"$meta.dynamicSchema",data:"$buildData($meta)"}}}("Category"),function(e={}){return S("contactInfo",[w(e),I(e),{$el:"script",if:"$activeStep === $lastStep()",children:E},c(e.scope,!0),(t=e.scope,{$formkit:"checkbox",label:"$meta.tcpaLanguage",__raw__sectionsSchema:{label:{attrs:{innerHTML:"$label"}}},name:t?t+":TCPA_Opt_In":"TCPA_Opt_In","data-tf-sensitive":"false",validation:"required|accepted",validationMessages:{required:"Consent is required",accepted:"Consent is required"},classes:{label:"t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]"}}),g()],{nextOnEnter:!1});var t}({headlineClass:"!t-text-[#465f87]",subheadlineClass:"!t-text-[#353739]",headline:'$getKey($meta, "finalHeadlines." + $get(Category).value, $meta.defaultFinalHeadline)',subheadline:'$getKey($meta, "finalSubHeadlines." + $get(Category).value, $meta.defaultFinalSubHeadline)'}),((e={})=>({$el:"div",attrs:{class:{if:"$activeStep === $firstStep()",then:"step-nav "+(e.firstStepButtonClass||"!t-justify-center sm:!t-justify-between"),else:"step-nav !t-justify-between"}},children:[{$formkit:"button",name:"back_button",onClick:"$setPreviousStep($prevStepFunc($get(form)))",children:"Back",outerClass:{if:"$activeStep === $firstStep()",then:"t-hidden sm:t-block",else:""},style:{if:"$activeStep === $firstStep()",then:"display: none;"},classes:{input:(e.inputClass||"")+" f-navigation-input"}},{$formkit:"button",name:"next_button",onClick:"$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))",children:{if:"$activeStep === $firstStep()",then:e.startText||"Start",else:"Next"},outerClass:{if:"$activeStep === $lastStep()",then:"t-hidden",else:""},style:{if:"$activeStep === $lastStep()",then:"display: none;"},classes:{input:(e.inputClass||"")+" f-navigation-input"}},{$formkit:"submit",name:"submit_button",label:e.submitLabel||"Submit",if:"$activeStep === $lastStep()",style:{if:"$activeStep !== $lastStep()",then:"display: none;"},classes:{input:(e.inputClass||"")+" !t-ml-2 sm:!t-ml-auto f-navigation-input"}}]}))({startText:"Schedule Now",inputClass:"!t-text-black !t-font-extrabold !t-bg-[#ffce51]",firstStepButtonClass:"!t-justify-center"}),{$el:"pre",if:'$urlParam("fdbg", "") == 1',children:[{$el:"pre",children:"$stringify( $get(form).value )",attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["activeStep: ","$activeStep"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["stepHistory: ","$stepHistory"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["stepQueue: ","$stepQueue"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["steps: ","$stepKeys()"],attrs:{class:"t-text-xs",style:"overflow: scroll"}}]}]}]}];var O;return M}();
1
+ var applianceRepairMinimal=function(){"use strict";const e='$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)',t='$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';function a(){return Object.assign({},...arguments)}const n=e=>(e.name&&!e.id&&(e.id=e.name),a({$formkit:"text",validation:"required",validationMessages:{required:"Field is required"},labelClass:"required"},e)),s=e=>(e.wrapperClass="side-by-side t-items-center",n(e)),r=e=>(e.wrapperClass="t-flex t-justify-center",e.messagesClass="t-flex t-justify-center",e.inputClass="t-text-center",e.helpClass="t-mt-2.5 !t-text-sm t-text-center",n(e)),i=(e,t={})=>n({$formkit:"FloatingLabelText",placeholder:"First Name",name:e?e+":First_Name":"First_Name",autocomplete:"given-name",validationMessages:{required:"First Name is required"},inputClass:"t-text-center",...t}),l=(e,t={})=>n({$formkit:"FloatingLabelText",placeholder:"Last Name",name:e?e+":Last_Name":"Last_Name",autocomplete:"family-name",validationMessages:{required:"Last Name is required"},inputClass:"t-text-center",...t}),o=(e,t={})=>({$el:"div",attrs:{class:"t-flex t-flex-row t-flex-wrap t-gap-x-[2%] t-justify-center t-max-w-[95%] sm:!t-max-w-[70%]"},children:[i(e,{outerClass:"!t-max-w-[48%] sm:!t-max-w-[49%]",...t}),l(e,{outerClass:"!t-max-w-[48%] sm:!t-max-w-[49%]",...t})]}),m=(e,t={})=>n({$formkit:"FloatingLabelText",datatype:"tel",name:e?e+":Primary_Phone":"Primary_Phone",placeholder:t.placeholder||"Phone Number",maxlength:14,help:t.help||null,autocomplete:"tel-national","data-tf-sensitive":"false",validation:"required|matches:/^[0-9]{3}[0-9]{3}[0-9]{4}$/|valid_phone",validationMessages:{required:"Phone Number is required",matches:"Invalid Phone Format, use (XXX) YYY-ZZZZ",valid_phone:"Invalid Phone Number"},helpClass:"t-mt-2.5 md:t-text-right md:t-mt-[-2px]",inputClass:"t-text-center",wrapperClass:"t-flex t-justify-center",...t}),p=(e,t,a={})=>(t?r:s)({label:t?a.label:"Zip Code:",help:t?a.help??"We try to match you with local help":null,placeholder:"#####",name:e?e+":Zip":"Zip",maxlength:5,inputmode:"numeric",autocomplete:"postal-code",validation:"required|matches:/^[0-9]{5}$/",validationMessages:{required:"Zip Code is required",matches:"Invalid Zip Code"},...a}),c=(e,t={})=>({$formkit:"checkbox",label:"$meta.tcpaLanguage",__raw__sectionsSchema:{label:{attrs:{innerHTML:"$label"}}},name:e?e+":TCPA_Opt_In":"TCPA_Opt_In","data-tf-sensitive":"false",validation:"required|accepted",validationMessages:{required:"Consent is required",accepted:"Consent is required"},classes:{outer:t.outerClass?t.outerClass:"",wrapper:t.wrapperClass?t.wrapperClass:"",messages:t.messagesClass?t.messagesClass:"",label:"t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]"+(t.labelClass?" "+t.labelClass:"")}}),d="$onEnter($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))",u="$onInput($setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form))))",f=e=>"group"!==e.type&&"section"!==e.type&&"form"!==e.type&&"hidden"!==e.$formkit&&!e.children,h=e=>{if(f(e))return e;for(var t=e.children.length-1;t>=0;t--){if("string"==typeof e.children)continue;const a=e.children[t];if(f(a))return a;const n=h(a);if(n)return n}return null},x={$el:"div",if:"$activeStep === $lastStep()",attrs:{class:"t-flex t-justify-center t-items-center t-text-sm t-text-gray-500"},children:[{$el:"img",attrs:{loading:"lazy",alt:"",style:{border:0},width:"25",height:"25",src:"https://d27hmee62k45vz.cloudfront.net/lock_icon_1.jpeg"}},{$el:"span",children:"Secure & Encrypted",attrs:{class:"t-pl-2 t-pt-1 t-font-medium"}}]};function g(e={}){return a(x,e)}function y(t){return{$el:"h3",children:t.headline||e,attrs:{class:"t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-3 t-pt-0 t-px-1 "+(t.headlineClass||"")+" f-contact-info-headline"}}}function $(e){return{$el:"h5",children:e.subheadline||t,attrs:{class:"t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-6 t-pt-0 t-px-3 "+(e.subheadlineClass||"")+" f-contact-info-subheadline"}}}const v="(function() {\n if (window.xxTrustedFormLoaded) {\n return\n }\n var vid = '';\n if (typeof window.zar !== 'undefined') {\n vid = window.zar.getVID();\n }\n window.xxTrustedFormLoaded = true;\n var sandbox = document.location.hostname.indexOf('localhost') > -1 ? 'true' : 'false'\n var tf = document.createElement('script');\n tf.type = 'text/javascript'; tf.async = true;\n tf.src = (\"https:\" == document.location.protocol ? 'https' : 'http') + \"://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&identifier=\" + vid + \"&ping_field=xxTrustedFormPingUrl&provideReferrer=false&invert_field_sensitivity=true&sandbox=\" + sandbox + \"&l=\" + new Date().getTime() + Math.random();\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s);\n})();";const b=(e,t)=>({$el:"section",if:'$stepEnabled("'+e+'")',attrs:{hidden:'$activeStep !== "'+e+'"',key:t||e}});function w(e,t,n={}){const{nextOnEnter:s=!0,nextOnInput:r=!1,stepKey:i,nextStepMap:l,triggerRedirectMap:o,autoFocus:m}=n;if(t&&t.length&&(s||r)){const e=h(t[t.length-1]);e&&!0===s&&(e.onKeypress=d),e&&!0===r&&(e.onInput=u)}return a(b(e,i),{children:[{$formkit:"group",id:e,name:e,nextStepMap:l,triggerRedirectMap:o,autoFocus:m,children:t}]})}const S={type:"form",id:"form",config:{validationVisibility:"submit"},onSubmit:'$submit($submitUrl, $prepData, $handleRedirect, "text/plain; charset=UTF-8")',plugins:"$plugins",actions:!1,anchorElement:"form-anchor",useLocalStorage:!0,prepop:{fromURL:!0},errorCodes:{403:{message:"An Error Occurred",abort:!1},409:{abort:!1},429:"An Error Occurred",504:{message:"An Error Occurred",abort:!1}},formClass:"!t-max-w-[40rem]"};function C(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>t.includes(e))))}const I={};const E={$el:"div",children:[{$el:"div",attrs:{id:"form-anchor",class:"t-absolute",style:{top:"-30px",left:0}}}],attrs:{class:"t-relative"}};const k=[{$formkit:"hidden",name:"vertical",value:"HomeImprovement"},{$formkit:"hidden",name:"TCPA_Language",value:"$meta.tcpaLanguage"},{$formkit:"hidden",name:"gclid",value:null},{$formkit:"hidden",name:"campaignid",value:null},{$formkit:"hidden",name:"s",value:null}],F={Additions:'Example: "I would like to add a sunroom to my home"',Appliances:'Example: "I need to repair a dishwasher"',Appraisals:'Example: "I need to get my home appraised"',Cabinets:'Example: "I want to install new kitchen cabinets"',Carpentry:'Example: "I need someone to build custom shelves"',Carpets:'Example: "I want to replace the carpets in my living room"',Cleaning:'Example: "I need a professional cleaning service for my home"',Countertops:'Example: "I want to install granite countertops in my kitchen"',"Decks and Porches":'Example: "I want to build a new deck in my backyard"',Demolition:'Example: "I need to demolish a wall in my home"',Doors:'Example: "I want to replace the front door of my house"',Driveways:'Example: "I need to repair my driveway"',"Drywall and Plaster":'Example: "I need to repair a hole in my drywall"',Electrical:'Example: "I need an electrician to install new light fixtures"',Fencing:'Example: "I want to install a privacy fence in my backyard"',Flooring:'Example: "I want to install hardwood flooring in my living room"',Foundations:'Example: "I need to repair the foundation of my house"',"Garage Doors":'Example: "I want to replace my garage door"',"General Contractors":'Example: "I need a general contractor for a home renovation"',Gutters:'Example: "I need to clean and repair my gutters"',Handyman:'Example: "I need a handyman to fix various things around my house"',"Holiday Decorators":'Example: "I want to hire someone to decorate my home for the holidays"',"Smart Home":'Example: "I want to install a smart home automation system"',"Home Builders":'Example: "I want to build a custom home"',"Home Inspection":'Example: "I need a home inspection before buying a house"',"Home Organization":'Example: "I need help organizing my closets and storage"',"Home Security":'Example: "I want to install a home security system"',"Home Staging":'Example: "I need a home staging service to prepare my house for sale"',"Home Theater":'Example: "I want to set up a home theater system"',"Home Warranties":'Example: "I want to purchase a home warranty"',"Hot Tubs":'Example: "I want to install a hot tub in my backyard"',"Heating and Cooling":'Example: "I need to repair my air conditioning unit"',Insulation:'Example: "I want to improve the insulation in my home"',"Junk Removal":'Example: "I need a service to remove junk and debris from my property"',Landscaping:'Example: "I want to redesign my backyard landscaping"',Locksmiths:'Example: "I need a locksmith to change the locks on my doors"',"Masonry and Concrete":'Example: "I need to repair a cracked concrete driveway"',Restoration:'Example: "I need water damage restoration services"',Moving:'Example: "I need a moving company to help me relocate"',Painting:'Example: "I want to paint the interior walls of my house"',"Pest Control":'Example: "I need pest control services for my home"',Pools:'Example: "I want to install a swimming pool in my backyard"',Plumbing:'Example: "I need a plumber to fix a leaky faucet"',"Pressure Washing":'Example: "I want to pressure wash the exterior of my house"',Remodeling:'Example: "I want to remodel my kitchen"',Roofing:'Example: "I need to repair a leaky roof"',Sheds:'Example: "I want to build a storage shed in my backyard"',Siding:'Example: "I want to replace the siding on my house"',Solar:'Example: "I want to install solar panels on my roof"',Tiling:'Example: "I want to install new tiles in my bathroom"',"Tree Services":'Example: "I need a large tree removed"',"Walk-in Tubs":'Example: "I want to install a walk-in tub in my bathroom"',Waterproofing:'Example: "I need to waterproof my basement"',"Window Cleaning":'Example: "I need a professional window cleaning service"',Windows:'Example: "I want to replace 3 windows in my house"',"Not Sure or Other":'Example: "I need general handyman services"'},P={Appliances:"We Have Appliance Pros Standing By!"},_={Appliances:"Who needs appliance help?"},H=[function(e=null){let t=F,n=P,s=_;return e&&(t=C(F,e),n=C(P,e),s=C(_,e)),{type:"meta",data:a(I,{tcpaLanguage:"By checking this box, I a) agree to the Terms of Use, and b) consent to be contacted by contractors and partners of this website using live, autodialed, pre-recorded, or artificial voice calls, as well as text messages. Your consent is not required as a condition of purchasing any goods or services.",defaultCommentsPlaceholder:'$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)',commentsPlaceholders:t,defaultFinalHeadline:"We Found Contractors!",finalHeadlines:n,defaultFinalSubHeadline:"Compare quotes and save. Verify contact info:",finalSubHeadlines:s})}}(),a(E,j),{$cmp:"FormKit",props:function(e){const t=a(S,e);return t.formId&&!t.name&&(t.name=t.formId),t}({formId:"applianceRepairMinimal",redirectMap:{"*":"/thank-you"}}),children:[function(e={}){return a(function(e={}){return{$el:"h1",attrs:{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 "+(e.headlineClass||"")+" f-first-headline"}}}(e),e)}({children:'$urlParam("hl", "Get Started Here!")',if:"$activeStep === $firstStep()"}),function(e={}){return a(function(e={}){return{$el:"h3",attrs:{class:"t-flex t-justify-center t-text-center t-text-[1.1rem] md:t-text-[1.2rem] t-font-medium t-text-blue-500 t-px-10 "+(e.subheadlineClass||"")+" f-first-subheadline"}}}(e),e)}({children:'$urlParam("shl", "Please Enter Your Zip Code:")',if:"$activeStep === $firstStep()",subheadlineClass:"!t-font-bold !t-text-[#465f87]"}),...k,{$el:"div",attrs:{class:"form-body"},children:[function(e={}){return w("applianceRepairFirstStep",[{$formkit:"hidden",name:"Category",id:"Category",value:"Appliances"},p(e.scope,!0,e.input)],e)}({nextOnInput:!1,headlineClass:"t-text-lg",input:{help:null}}),function(e={}){return w("contactInfo",[y(e),$(e),{$el:"script",if:"$activeStep === $lastStep()",children:v},{$el:"div",attrs:{class:"t-flex t-flex-col t-justify-center t-items-center"},children:[o(e.scope),m(e.scope,{outerClass:"!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",innerClass:"!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]"})]},c(e.scope,{outerClass:"!t-flex !t-flex-col !t-justify-center !t-items-center",wrapperClass:"t-w-[95%] sm:t-w-[75%]",messagesClass:"t-w-[95%] sm:t-w-[75%]"})],{nextOnEnter:!1})}({headlineClass:"!t-text-[#465f87]",subheadlineClass:"!t-text-[#353739]",headline:'$getKey($meta, "finalHeadlines." + $get(Category).value, $meta.defaultFinalHeadline)',subheadline:'$getKey($meta, "finalSubHeadlines." + $get(Category).value, $meta.defaultFinalSubHeadline)'}),((e={})=>({$el:"div",attrs:{class:{if:"$activeStep === $firstStep()",then:"step-nav "+(e.firstStepButtonClass||"!t-justify-center sm:!t-justify-between"),else:{if:"$activeStep === $lastStep()",then:"step-nav !t-justify-center ",else:"step-nav !t-justify-between"}}},children:[{$formkit:"button",name:"back_button",onClick:"$setPreviousStep($prevStepFunc($get(form)))",children:"Back",outerClass:{if:"$activeStep === $firstStep()",then:"t-hidden sm:t-block",else:{if:"$activeStep === $lastStep()",then:"t-hidden sm:t-block",else:""}},style:{if:"$activeStep === $firstStep()",then:"display: none;",else:{if:"$activeStep === $lastStep()",then:"display: none;"}},classes:{input:(e.inputClass||"")+" f-navigation-input"}},{$formkit:"button",name:"next_button",onClick:"$setNextStep($fireStepEvent($get(form)), $preStepFunc($get(form)))",children:{if:"$activeStep === $firstStep()",then:e.startText||"Start",else:"Next"},outerClass:{if:"$activeStep === $lastStep()",then:"t-hidden",else:""},style:{if:"$activeStep === $lastStep()",then:"display: none;"},classes:{input:(e.inputClass||"")+" f-navigation-input"}},{$formkit:"submit",name:"submit_button",label:e.submitLabel||"Submit",if:"$activeStep === $lastStep()",style:{if:"$activeStep !== $lastStep()",then:"display: none;"},classes:{input:(e.inputClass||"")+" f-navigation-input !t-w-60",outer:"!t-mt-0 !t-mb-0"}}]}))({startText:"Schedule Now",inputClass:"!t-text-black !t-font-extrabold !t-bg-[#ffce51]",firstStepButtonClass:"!t-justify-center"}),function(e={}){return{if:"$activeStep === $lastStep()",style:{if:"$activeStep !== $lastStep()",then:"display: none;"},children:[g({attrs:{class:"t-flex t-justify-center t-items-center t-text-sm t-text-gray-500 t-pb-4 sm:t-pb-8"},...e})]}}(),{$el:"pre",if:'$urlParam("fdbg", "") == 1',children:[{$el:"pre",children:"$stringify( $get(form).value )",attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["activeStep: ","$activeStep"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["stepHistory: ","$stepHistory"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["stepQueue: ","$stepQueue"],attrs:{class:"t-text-xs",style:"overflow: scroll"}},{$el:"pre",children:["steps: ","$stepKeys()"],attrs:{class:"t-text-xs",style:"overflow: scroll"}}]}]}]}];var j;return H}();
@@ -387,7 +387,7 @@ const firstName = (scope, vertical, updates = {}) => {
387
387
  const label = vertical ? updates.label : "First Name:";
388
388
  return func({
389
389
  label,
390
- placeholder: "First",
390
+ placeholder: "First Name",
391
391
  name: scope ? scope + ":" + "First_Name" : "First_Name",
392
392
  autocomplete: "given-name",
393
393
  validationMessages: {
@@ -402,7 +402,7 @@ const lastName = (scope, vertical, updates = {}) => {
402
402
  const label = vertical ? updates.label : "Last Name:";
403
403
  return func({
404
404
  label,
405
- placeholder: "Last",
405
+ placeholder: "Last Name",
406
406
  name: scope ? scope + ":" + "Last_Name" : "Last_Name",
407
407
  autocomplete: "family-name",
408
408
  validationMessages: {
@@ -419,9 +419,9 @@ const phone = (scope, vertical, updates = {}) => {
419
419
  $formkit: "tel",
420
420
  name: scope ? scope + ":" + "Primary_Phone" : "Primary_Phone",
421
421
  label,
422
- placeholder: "###-###-####",
422
+ placeholder: updates.placeholder || "###-###-####",
423
423
  maxlength: 12,
424
- help: "10-digit phone number, hyphens optional",
424
+ help: updates.help || "10-digit phone number, hyphens optional",
425
425
  autocomplete: "tel-national",
426
426
  "data-tf-sensitive": "false",
427
427
  validation: "required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",
@@ -963,7 +963,7 @@ const socialSecurityDisabilityReceivingBenefits = (scope, vertical, updates = {}
963
963
  )
964
964
  };
965
965
 
966
- const TCPAConsent = (scope) => ({
966
+ const TCPAConsent = (scope, updates = {}) => ({
967
967
  $formkit: "checkbox",
968
968
  label: "$meta.tcpaLanguage",
969
969
  // Necessary to get links to work in the tcpa language
@@ -978,7 +978,12 @@ const TCPAConsent = (scope) => ({
978
978
  accepted: "Consent is required",
979
979
  },
980
980
  classes: {
981
- label: "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]",
981
+ outer: updates.outerClass ? updates.outerClass : "",
982
+ wrapper: updates.wrapperClass ? updates.wrapperClass : "",
983
+ messages: updates.messagesClass ? updates.messagesClass : "",
984
+ label:
985
+ "t-text-xs t-text-slate-500 t-font-normal !t-leading-[0.9rem]" +
986
+ (updates.labelClass ? " " + updates.labelClass : ""),
982
987
  },
983
988
  });
984
989
 
@@ -1220,7 +1225,7 @@ const secureIconDefault = {
1220
1225
  ],
1221
1226
  };
1222
1227
 
1223
- function secureIcon(updates) {
1228
+ function secureIcon(updates = {}) {
1224
1229
  return merge(secureIconDefault, updates)
1225
1230
  }
1226
1231
 
@@ -1336,7 +1341,7 @@ function contactStepSubHeadline(updates) {
1336
1341
  children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
1337
1342
  attrs: {
1338
1343
  class:
1339
- "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-7 t-pt-0 t-px-3" +
1344
+ "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-6 t-pt-0 t-px-3" +
1340
1345
  " " +
1341
1346
  (updates.subheadlineClass || "") +
1342
1347
  " f-contact-info-subheadline",