mod-build 3.6.75-beta.2 → 4.0.0-alpha.2

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 (62) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +18 -0
  3. package/CHANGELOG.md +2 -252
  4. package/README.md +16 -263
  5. package/gulp-tasks/grab-cdn.js +0 -10
  6. package/package.json +18 -68
  7. package/siteconfig.js +38 -0
  8. package/src/data/footer.js +117 -0
  9. package/src/data/seasons.js +5 -7
  10. package/src/index.html +18 -0
  11. package/src/main.js +45 -0
  12. package/src/scripts/has-qs-params.js +6 -5
  13. package/src/scripts/url-cleaner.js +3 -3
  14. package/src/scripts/utils.js +178 -0
  15. package/src/styles/home.scss +1 -0
  16. package/src/templates/_partials/scripts/deferred-styles.html +16 -16
  17. package/src/templates/_partials/scripts/vwo-redirect-callback.html +43 -45
  18. package/src/templates/components/head.html +70 -0
  19. package/tasks/clean.js +13 -0
  20. package/tasks/grab-cdn.js +107 -0
  21. package/tasks/grab-form-helpers.js +94 -0
  22. package/tasks/grab-shared-components.js +81 -0
  23. package/tasks/grab-shared-scripts.js +267 -0
  24. package/tasks/serve.js +15 -0
  25. package/tasks/templates.js +168 -0
  26. package/template.js +801 -0
  27. package/vite.config.js +56 -0
  28. package/.eslintrc.yml +0 -59
  29. package/src/data/common.js +0 -704
  30. package/src/data/components/qs-footer.js +0 -55
  31. package/src/data/components/quote-footer.js +0 -73
  32. package/src/scripts/apt-block.js +0 -919
  33. package/src/scripts/components/custom-selects.js +0 -48
  34. package/src/scripts/components/radio-panels.js +0 -45
  35. package/src/scripts/es6-1.js +0 -6
  36. package/src/scripts/es6-2.js +0 -2
  37. package/src/scripts/qs-form.js +0 -839
  38. package/src/scripts/vendor/maxmind-geoip2.js +0 -2
  39. package/src/scripts/vendor/swiper.min.js +0 -13
  40. package/src/styles/apt-block.scss +0 -888
  41. package/src/templates/_partials/apt-block.html +0 -30
  42. package/src/templates/_partials/scripts/analytics.html +0 -4
  43. package/src/templates/_partials/scripts/go-page-hiding-snippet.html +0 -8
  44. package/src/templates/_partials/scripts/google-maps.html +0 -1
  45. package/src/templates/_partials/scripts/google-optimize.html +0 -12
  46. package/src/templates/_partials/scripts/gtm-editorials/body/google-tag-manager-body.html +0 -5
  47. package/src/templates/_partials/scripts/gtm-editorials/head/google-tag-manager-head.html +0 -10
  48. package/src/templates/_partials/scripts/gtm-hil/body/google-tag-manager-body.html +0 -5
  49. package/src/templates/_partials/scripts/gtm-hil/head/google-tag-manager-head.html +0 -10
  50. package/src/templates/_partials/scripts/gtm-pro/body/google-tag-manager-body.html +0 -5
  51. package/src/templates/_partials/scripts/gtm-pro/head/google-tag-manager-head.html +0 -10
  52. package/src/templates/_partials/scripts/gtm-quote/body/google-tag-manager-body.html +0 -5
  53. package/src/templates/_partials/scripts/gtm-quote/head/google-tag-manager-head.html +0 -9
  54. package/src/templates/_partials/scripts/gtm-whitelabel/body/mod-google-tag-manager-body.html +0 -5
  55. package/src/templates/_partials/scripts/gtm-whitelabel/body/non-mod-google-tag-manager-body.html +0 -5
  56. package/src/templates/_partials/scripts/gtm-whitelabel/head/mod-google-tag-manager-head.html +0 -10
  57. package/src/templates/_partials/scripts/gtm-whitelabel/head/non-mod-google-tag-manager-head.html +0 -9
  58. package/src/templates/_partials/scripts/gtm-wordpress/body/google-tag-manager-body.html +0 -5
  59. package/src/templates/_partials/scripts/gtm-wordpress/head/google-tag-manager-head.html +0 -9
  60. package/src/templates/_partials/scripts/visual-website-optimizer.html +0 -5
  61. package/src/templates/index.html +0 -46
  62. /package/{src → public}/favicon.ico +0 -0
@@ -1,888 +0,0 @@
1
- /**
2
- * Imports
3
- */
4
-
5
- @import 'partials/mixins';
6
-
7
- /**
8
- * Vars
9
- */
10
-
11
- $color-white: #FFF;
12
- $color-black: #000;
13
- $color-gray1: #E5E5E5;
14
- $color-gray2: #565656;
15
- $color-gray3: #757375;
16
- $color-gray4: #D8D8D8;
17
- $color-gray5: #676767;
18
- $color-gray6: #9F9F9F;
19
- $color-gray7: #BDBDBD;
20
- $color-beige1: #F6F5F1;
21
- $color-green1: #A0BC57;
22
- $color-blue1: #6EB7C2;
23
- $color-red1: #F34747;
24
-
25
- $color-primary: #F6931D;
26
-
27
- $trans-time: .15s;
28
- $trans-func: ease;
29
-
30
- /**
31
- * Import fonts
32
- */
33
- $font-primary-regular: 'Montserrat', sans-serif;
34
- $font-primary-light: 'Montserrat-Light', sans-serif;
35
- $font-primary-semi-bold: 'Montserrat-SemiBold', sans-serif;
36
- $font-primary-bold: 'Montserrat-Bold', sans-serif;
37
-
38
-
39
- /**
40
- * Mixins
41
- */
42
-
43
- @mixin font-primary-regular {
44
- font-family: $font-primary-regular;
45
- font-weight: normal;
46
- }
47
-
48
- @mixin font-primary-light {
49
- font-family: $font-primary-light;
50
- font-weight: normal;
51
- }
52
-
53
- @mixin font-primary-semi-bold {
54
- font-family: $font-primary-semi-bold;
55
- font-weight: normal;
56
- }
57
-
58
- @mixin font-primary-bold {
59
- font-family: $font-primary-bold;
60
- font-weight: normal;
61
- }
62
-
63
- @mixin btn-primary-style($color) {
64
- background: $color;
65
-
66
- &:hover,
67
- &:focus,
68
- &:active {
69
- background: darken($color, 10);
70
- }
71
-
72
- &:active {
73
- &:focus {
74
- background: darken($color, 10);
75
- }
76
- }
77
- }
78
-
79
- @mixin btn-secondary-style($color) {
80
- background: transparent;
81
- border: 2px solid $color-white;
82
- color: $color;
83
- padding-bottom: 11px;
84
- padding-top: 11px;
85
-
86
- &:hover,
87
- &:focus,
88
- &:active {
89
- background: transparent;
90
- border-color: $color;
91
- }
92
-
93
- &:active {
94
- &:focus {
95
- background: transparent;
96
- border-color: $color;
97
- }
98
- }
99
-
100
- @include breakpoint-phone {
101
- border-color: $color;
102
-
103
- &:hover,
104
- &:focus,
105
- &:active {
106
- background: $color;
107
- color: $color-white;
108
- }
109
-
110
- &:active {
111
- &:focus {
112
- background: $color;
113
- color: $color-white;
114
- }
115
- }
116
- }
117
- }
118
-
119
-
120
- /**
121
- * Animation
122
- */
123
-
124
- @keyframes spinnerAnim {
125
- from { transform: rotate(0deg); }
126
- to { transform: rotate(360deg); }
127
- }
128
-
129
-
130
- /**
131
- * Desktop styles
132
- */
133
-
134
- .apt-block {
135
- border-bottom: 1px solid $color-gray1;
136
- color: $color-gray2;
137
- margin: 0;
138
- padding: 45px 0;
139
-
140
- &__title {
141
- margin: 0 0 45px;
142
- }
143
-
144
- &__loading {
145
- @include font-primary-regular;
146
- color: $color-gray6;
147
- font-size: 13px;
148
- letter-spacing: .69px;
149
- line-height: 16px;
150
- margin: 40px 0 0;
151
- padding-left: 20px;
152
- position: relative;
153
- text-transform: uppercase;
154
-
155
- .apt-block__spinner {
156
- left: 0;
157
- position: absolute;
158
- top: 0;
159
- }
160
- }
161
-
162
- &__spinner {
163
- cursor: wait;
164
- display: inline-block;
165
- height: 10px;
166
- position: relative;
167
- width: 10px;
168
-
169
- &::before {
170
- content: '';
171
- display: inline-block;
172
- height: 100%;
173
- vertical-align: middle;
174
- }
175
-
176
- &::after {
177
- animation: spinnerAnim 1.5s linear infinite;
178
- border: 3px solid $color-gray6;
179
- border-radius: 50%;
180
- border-right-color: $color-gray1;
181
- border-top-color: $color-gray1;
182
- content: '';
183
- display: block;
184
- height: 100%;
185
- left: 0;
186
- position: absolute;
187
- top: 0;
188
- vertical-align: middle;
189
- width: 100%;
190
- }
191
- }
192
-
193
- .has-error {
194
- .form-control-select {
195
- border-color: $color-red1;
196
- color: $color-red1;
197
- }
198
-
199
- .apt-match__schedule-error {
200
- display: block;
201
- }
202
- }
203
-
204
- .form-control-select {
205
- background: $color-white;
206
- border: 1px solid $color-gray4;
207
- border-radius: 4px;
208
- box-shadow: inset 0 1px 2px 0 rgba($color-black, .1);
209
- color: $color-gray2;
210
- display: inline-block;
211
- height: 44px;
212
- position: relative;
213
- transition: color $trans-func $trans-time, border-color $trans-func $trans-time;
214
-
215
- &::after {
216
- border-color: $color-gray4;
217
- border-style: solid;
218
- border-width: 0 2px 2px 0;
219
- content: '';
220
- display: block;
221
- height: 6px;
222
- position: absolute;
223
- right: 15px;
224
- top: 15px;
225
- transform: rotate(45deg);
226
- width: 6px;
227
- z-index: 1;
228
- }
229
-
230
- select {
231
- @include font-primary-light;
232
- appearance: none;
233
- background: transparent;
234
- border: 0;
235
- font-size: 14px;
236
- height: 44px;
237
- line-height: 18px;
238
- padding: 13px 30px 13px 20px;
239
- width: 100%;
240
- z-index: 2;
241
-
242
- &::-ms-expand { // sass-lint:disable-line no-vendor-prefixes
243
- display: none;
244
- }
245
-
246
- &:disabled {
247
- cursor: not-allowed;
248
- }
249
- }
250
- }
251
-
252
- a,
253
- button,
254
- input,
255
- select {
256
- outline: none !important;
257
- }
258
-
259
- button,
260
- select {
261
- cursor: pointer;
262
- }
263
-
264
- .btn {
265
- @include font-primary-regular;
266
- appearance: none;
267
- border: 0;
268
- border-radius: 4px;
269
- box-shadow: none;
270
- color: $color-white;
271
- display: inline-block;
272
- font-size: 14px;
273
- height: 44px;
274
- line-height: 18px;
275
- margin: 0;
276
- overflow: hidden;
277
- padding: 13px 20px;
278
- position: relative;
279
-
280
- & + .btn {
281
- margin-left: 15px;
282
- }
283
-
284
- span {
285
- color: inherit;
286
- }
287
-
288
- &-primary {
289
- @include btn-primary-style($color-primary);
290
- }
291
-
292
- &-link {
293
- @include btn-secondary-style($color-blue1);
294
- }
295
-
296
- .spinner {
297
- cursor: wait;
298
- display: none;
299
- height: 10px;
300
- left: 50%;
301
- margin: -7px 0 0 -7px;
302
- position: absolute;
303
- top: 50%;
304
- width: 10px;
305
-
306
- &::before {
307
- content: '';
308
- display: inline-block;
309
- height: 100%;
310
- vertical-align: middle;
311
- }
312
-
313
- &::after {
314
- animation: spinnerAnim 1.5s linear infinite;
315
- border: 3px solid darken($color-primary, 15);
316
- border-radius: 50%;
317
- border-right-color: $color-white;
318
- border-top-color: $color-white;
319
- content: '';
320
- display: block;
321
- height: 100%;
322
- left: 0;
323
- position: absolute;
324
- top: 0;
325
- vertical-align: middle;
326
- width: 100%;
327
- }
328
- }
329
- }
330
-
331
- &--instant {
332
- .apt-block {
333
- &__suptitle,
334
- &__title,
335
- &__subtitle {
336
- text-align: center;
337
- }
338
-
339
- &__title {
340
- font-size: 36px;
341
- line-height: 39px;
342
- margin-bottom: 15px;
343
- }
344
-
345
- &__subtitle {
346
- font-size: 16px;
347
- line-height: 19px;
348
- margin-bottom: 25px;
349
- margin-left: auto;
350
- margin-right: auto;
351
- max-width: 300px;
352
- }
353
- }
354
- }
355
-
356
- &__suptitle {
357
- @include font-primary-semi-bold;
358
- color: $color-gray1;
359
- font-size: 16px;
360
- line-height: 24px;
361
- margin: 0 0 5px;
362
- text-transform: uppercase;
363
- }
364
-
365
- &__instant-matches {
366
- margin-left: auto;
367
- margin-right: auto;
368
- max-width: 585px;
369
- }
370
- }
371
-
372
- .apt-match {
373
- @include font-primary-light;
374
- min-height: 120px;
375
- padding-left: 150px;
376
- position: relative;
377
-
378
- & + & {
379
- margin-top: 40px;
380
- }
381
-
382
- &--loading {
383
- &::after {
384
- bottom: 0;
385
- content: '';
386
- cursor: wait;
387
- display: block;
388
- left: 0;
389
- position: absolute;
390
- right: 0;
391
- top: 0;
392
- z-index: 10;
393
- }
394
-
395
- .btn {
396
- span {
397
- visibility: hidden;
398
- }
399
-
400
- .spinner {
401
- display: inline-block;
402
- visibility: visible;
403
- }
404
- }
405
- }
406
-
407
- &__logo {
408
- background-position: center top;
409
- background-repeat: no-repeat;
410
- background-size: contain;
411
- border: 4px solid $color-white;
412
- box-shadow: 0 2px 4px 0 rgba($color-black, .13);
413
- height: 120px;
414
- left: 0;
415
- overflow: hidden;
416
- position: absolute;
417
- text-indent: -1000px;
418
- top: 0;
419
- width: 120px;
420
-
421
- &--placeholder {
422
- @include font-primary-light;
423
- background: $color-beige1;
424
- color: $color-gray7;
425
- font-size: 58px;
426
- letter-spacing: 0;
427
- line-height: 110px;
428
- text-align: center;
429
- text-indent: 0;
430
- }
431
- }
432
-
433
- &__label {
434
- @include font-primary-semi-bold;
435
- color: $color-green1;
436
- font-size: 13px;
437
- letter-spacing: .69px;
438
- line-height: 16px;
439
- text-transform: uppercase;
440
- }
441
-
442
- &__company {
443
- @include font-primary-regular;
444
- font-size: 18px;
445
- line-height: 20px;
446
- margin: 0 0 15px;
447
- }
448
-
449
- &__form {
450
- color: $color-gray3;
451
- font-size: 14px;
452
- line-height: 20px;
453
- max-width: 585px;
454
-
455
- &-title {
456
- margin-bottom: 5px;
457
- }
458
- }
459
-
460
- &__schedule-error {
461
- color: $color-red1;
462
- display: none;
463
- margin: 5px 0 0;
464
- }
465
-
466
- &__schedule-control {
467
- background: $color-white;
468
- border-collapse: separate;
469
- border-radius: 4px;
470
- display: table;
471
- font-size: 0;
472
- margin: 0;
473
- position: relative;
474
- width: 100%;
475
-
476
- &--date-only {
477
- width: 60%;
478
-
479
- .form-control-select {
480
- &:first-child {
481
- width: 100%;
482
- }
483
-
484
- &:last-child {
485
- display: none;
486
- }
487
- }
488
- }
489
-
490
- &-controls {
491
- display: table-cell;
492
- vertical-align: top;
493
- width: 99%;
494
- }
495
-
496
- &-btn {
497
- display: table-cell;
498
- vertical-align: top;
499
- width: 1%;
500
- }
501
-
502
- .btn,
503
- .form-control-select {
504
- border-radius: 0;
505
- box-sizing: border-box;
506
- vertical-align: top;
507
- }
508
-
509
- .form-control-select {
510
- background: transparent;
511
- border-right-width: 0;
512
- overflow: hidden;
513
- width: 50%;
514
-
515
- &:first-child {
516
- border-radius: 4px 0 0 4px;
517
- }
518
- }
519
-
520
- .btn {
521
- border-radius: 0 4px 4px 0;
522
- }
523
- }
524
-
525
- &__schedule-info {
526
- position: relative;
527
- width: 100%;
528
-
529
- &::after {
530
- clear: both;
531
- content: '';
532
- display: block;
533
- }
534
-
535
- &-row {
536
- &::after {
537
- clear: both;
538
- content: '';
539
- display: table;
540
- height: 1px;
541
- overflow: hidden;
542
- }
543
- }
544
-
545
- &-col {
546
- &-left {
547
- float: left;
548
- }
549
-
550
- &-right {
551
- float: right;
552
- text-align: right;
553
- width: 285px;
554
- }
555
- }
556
-
557
- &-date {
558
- @include font-primary-regular;
559
- font-size: 18px;
560
- line-height: 20px;
561
- padding: 4px 0 0;
562
- }
563
- }
564
-
565
- &__success-msg {
566
- text-align: left;
567
-
568
- &-title {
569
- @include font-primary-semi-bold;
570
- color: $color-green1;
571
- font-size: 13px;
572
- line-height: 16px;
573
- padding-left: 15px;
574
- position: relative;
575
- text-transform: uppercase;
576
-
577
- &::before {
578
- border-color: $color-green1;
579
- border-style: solid;
580
- border-width: 0 3px 3px 0;
581
- content: '';
582
- display: block;
583
- height: 8px;
584
- left: 0;
585
- position: absolute;
586
- top: 0;
587
- transform: rotate(45deg);
588
- width: 4px;
589
- }
590
- }
591
-
592
- &-text {
593
- padding-left: 15px;
594
- }
595
- }
596
-
597
- &__tcpa {
598
- @include font-primary-regular;
599
- clear: both;
600
- color: $color-gray5;
601
- font-size: 11px;
602
- line-height: 13px;
603
- margin: 20px 0 0;
604
- text-align: left;
605
-
606
- a {
607
- color: inherit;
608
- }
609
- }
610
- }
611
-
612
- .apt-instant-match {
613
- position: relative;
614
-
615
- & + & {
616
- margin-top: 15px;
617
- }
618
-
619
- .apt-block {
620
- &__spinner {
621
- margin-right: 12px;
622
- }
623
- }
624
-
625
- .apt-match {
626
- &__schedule-control {
627
- &--date-only {
628
- width: 100%;
629
-
630
- .form-control-select {
631
- &:first-child {
632
- border-radius: 4px 0 0;
633
- border-right-width: 0;
634
- width: 50%;
635
- }
636
-
637
- &:last-child {
638
- display: inline-block;
639
-
640
- &::after {
641
- opacity: .25;
642
- }
643
- }
644
-
645
- select {
646
- &:disabled {
647
- opacity: .25;
648
- }
649
- }
650
- }
651
- }
652
- }
653
- }
654
-
655
- &--loading {
656
- .apt-instant-match__placeholder {
657
- display: none;
658
-
659
- &--loading {
660
- display: block;
661
- }
662
- }
663
- }
664
-
665
- &__scheduled,
666
- &__placeholder {
667
- @include font-primary-semi-bold;
668
- border-radius: 4px;
669
- font-size: 13px;
670
- line-height: 16px;
671
- padding: 12px 20px;
672
- text-align: center;
673
- text-transform: uppercase;
674
- }
675
-
676
- &__placeholder {
677
- border: 2px dashed $color-gray4;
678
- color: $color-gray6;
679
-
680
- &--loading {
681
- display: none;
682
- }
683
- }
684
-
685
- &__scheduled {
686
- background: $color-gray5;
687
- color: $color-white;
688
- display: none;
689
- padding-bottom: 14px;
690
- padding-top: 14px;
691
- transition: background-color $trans-time $trans-func;
692
-
693
- &-content {
694
- display: inline-block;
695
- padding-left: 20px;
696
- position: relative;
697
-
698
- .apt-block__spinner {
699
- left: 0;
700
- margin-top: -8px;
701
- position: absolute;
702
- top: 50%;
703
- }
704
-
705
- &::before {
706
- border-color: $color-white;
707
- border-style: solid;
708
- border-width: 0 3px 3px 0;
709
- content: '';
710
- display: none;
711
- height: 8px;
712
- left: 2px;
713
- position: absolute;
714
- top: 1px;
715
- transform: rotate(45deg);
716
- width: 5px;
717
- }
718
- }
719
- }
720
-
721
- &__form {
722
- &--loading,
723
- &--scheduled {
724
- .apt-instant-match {
725
- &__schedule {
726
- display: none;
727
- }
728
-
729
- &__scheduled {
730
- display: block;
731
- }
732
- }
733
- }
734
-
735
- &--loading {
736
- cursor: wait;
737
- }
738
-
739
- &--scheduled {
740
- .apt-instant-match {
741
- &__scheduled {
742
- background: #A0BC57;
743
-
744
- &-content {
745
- .apt-block__spinner {
746
- display: none;
747
- }
748
-
749
- &::before {
750
- display: block;
751
- }
752
- }
753
- }
754
- }
755
- }
756
- }
757
- }
758
-
759
-
760
- /**
761
- * Mobile styles
762
- */
763
-
764
- @include breakpoint-phone {
765
- .apt-block {
766
- padding: 20px 0;
767
- text-align: center;
768
-
769
- &--instant {
770
- .apt-block {
771
- &__title {
772
- font-size: 28px;
773
- line-height: 34px;
774
- }
775
- }
776
- }
777
-
778
- &__loading {
779
- display: inline-block;
780
- }
781
- }
782
-
783
- .apt-match {
784
- padding-left: 0;
785
- text-align: left;
786
-
787
- &__logo {
788
- height: 90px;
789
- margin: 0 auto 15px;
790
- position: static;
791
- width: 90px;
792
-
793
- &--placeholder {
794
- font-size: 38px;
795
- line-height: 84px;
796
- }
797
- }
798
-
799
- &__label,
800
- &__company {
801
- text-align: center;
802
- }
803
-
804
- &__form {
805
- margin: 0 auto;
806
- max-width: 400px;
807
-
808
- &-title {
809
- text-align: center;
810
- }
811
- }
812
-
813
- &__schedule-control {
814
- display: block;
815
-
816
- &-controls,
817
- &-btns {
818
- display: block;
819
- width: 100%;
820
- }
821
-
822
- &-controls {
823
- height: 44px;
824
- }
825
-
826
- .form-control-select {
827
- border-radius: 0;
828
-
829
- &:first-child {
830
- border-radius: 4px 0 0;
831
- }
832
-
833
- &:last-child {
834
- border-radius: 0 4px 0 0;
835
- border-right-width: 1px;
836
- }
837
- }
838
-
839
- &--date-only {
840
- width: 100%;
841
-
842
- .form-control-select {
843
- &:first-child {
844
- border-right-width: 1px;
845
- border-top-right-radius: 4px;
846
- }
847
- }
848
- }
849
-
850
- .btn {
851
- border-radius: 0 0 4px 4px;
852
- display: block;
853
- width: 100%;
854
- }
855
- }
856
-
857
- &__schedule-info {
858
- text-align: center;
859
-
860
- &-date,
861
- &-time {
862
- margin-right: 0;
863
- }
864
-
865
- &-col {
866
- &-left,
867
- &-right {
868
- float: none;
869
- margin-top: 15px;
870
- text-align: center;
871
- width: 100%;
872
- }
873
- }
874
- }
875
-
876
- &__success-msg {
877
- text-align: center;
878
-
879
- &-title {
880
- display: inline-block;
881
- }
882
-
883
- &-text {
884
- padding: 0;
885
- }
886
- }
887
- }
888
- }