hr-design-system-handlebars 0.54.3 → 0.55.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 (70) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/assets/index.css +156 -33
  3. package/dist/assets/js/views/base/autosuggest/autoSuggest.feature.js +108 -0
  4. package/dist/assets/js/views/components/base/menu/toggleClass.feature.js +229 -0
  5. package/dist/views/base/autosuggest/autoSuggest.feature.js +108 -0
  6. package/dist/views/components/base/menu/dropdown.hbs +29 -0
  7. package/dist/views/components/base/menu/o-dropdown.hbs +43 -0
  8. package/dist/views/components/base/menu/toggleClass.feature.js +229 -0
  9. package/dist/views/components/content_nav/content_nav.hbs +31 -0
  10. package/dist/views/components/content_nav/content_nav_item.hbs +28 -0
  11. package/dist/views/components/content_nav/content_nav_list.hbs +27 -0
  12. package/dist/views/components/site_header/header_alpine.js +43 -1
  13. package/dist/views/components/teaser/content_nav/teaser_content_nav.hbs +17 -0
  14. package/package.json +1 -1
  15. package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_100.json +188 -0
  16. package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_50.json +188 -0
  17. package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_autosuggest_100.json +188 -0
  18. package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_autosuggest_50.json +188 -0
  19. package/src/assets/fixtures/teaser/teaser_content_nav_list_100.json +182 -0
  20. package/src/assets/fixtures/teaser/teaser_content_nav_list_25.json +182 -0
  21. package/src/assets/fixtures/teaser/teaser_content_nav_list_33.json +182 -0
  22. package/src/assets/fixtures/teaser/teaser_content_nav_list_50.json +182 -0
  23. package/src/assets/fixtures/teaser/teaser_content_nav_list_66.json +182 -0
  24. package/src/assets/fixtures/teaser/teaser_content_nav_mixed_100.json +185 -0
  25. package/src/assets/fixtures/teaser/teaser_content_nav_mixed_25.json +185 -0
  26. package/src/assets/fixtures/teaser/teaser_content_nav_mixed_33.json +185 -0
  27. package/src/assets/fixtures/teaser/teaser_content_nav_mixed_50.json +185 -0
  28. package/src/assets/fixtures/teaser/teaser_content_nav_mixed_66.json +185 -0
  29. package/src/stories/views/base/autosuggest/autoSuggest.feature.js +108 -0
  30. package/src/stories/views/components/base/menu/dropdown.hbs +29 -0
  31. package/src/stories/views/components/base/menu/o-dropdown.hbs +43 -0
  32. package/src/stories/views/components/base/menu/toggleClass.feature.js +229 -0
  33. package/src/stories/views/components/content_nav/content_nav.hbs +31 -0
  34. package/src/stories/views/components/content_nav/content_nav_item.hbs +28 -0
  35. package/src/stories/views/components/content_nav/content_nav_list.hbs +27 -0
  36. package/src/stories/views/components/site_header/header_alpine.js +43 -1
  37. package/src/stories/views/components/teaser/content_nav/teaser_content_nav.hbs +17 -0
  38. package/src/stories/views/components/teaser/content_nav/teaser_content_nav.stories.mdx +128 -0
  39. package/src/stories/views/components/teaser/fixtures/cluster_teaser_100.json +1 -1
  40. package/src/stories/views/components/teaser/fixtures/cluster_teaser_100_genre.json +1 -1
  41. package/src/stories/views/components/teaser/fixtures/cluster_teaser_33.json +1 -1
  42. package/src/stories/views/components/teaser/fixtures/cluster_teaser_33_genre.json +1 -1
  43. package/src/stories/views/components/teaser/fixtures/cluster_teaser_50.json +1 -1
  44. package/src/stories/views/components/teaser/fixtures/cluster_teaser_50_genre.json +1 -1
  45. package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_100.json +1 -1
  46. package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_33.json +1 -1
  47. package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_50.json +1 -1
  48. package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_100.json +1 -1
  49. package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_33.json +1 -1
  50. package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_50.json +1 -1
  51. package/src/stories/views/components/teaser/fixtures/teaser_cluster.json +1 -1
  52. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_100.json +1 -0
  53. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_50.json +1 -0
  54. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_autosuggest100.json +1 -0
  55. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_autosuggest_100.json +1 -0
  56. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_autosuggest_50.json +1 -0
  57. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_100.json +1 -0
  58. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_25.json +1 -0
  59. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_33.json +1 -0
  60. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_50.json +1 -0
  61. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_66.json +1 -0
  62. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_100.json +1 -0
  63. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_25.json +1 -0
  64. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_33.json +1 -0
  65. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_50.json +1 -0
  66. package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_66.json +1 -0
  67. package/src/stories/views/components/teaser/fixtures/teaser_group_100_highlight.json +1 -1
  68. package/src/stories/views/components/teaser/fixtures/teaser_group_100_highlight_2.json +1 -1
  69. package/src/stories/views/components/teaser/fixtures/teaser_index.json +1 -4979
  70. package/tailwind.config.js +12 -6
package/CHANGELOG.md CHANGED
@@ -1,3 +1,39 @@
1
+ # v0.55.2 (Fri Aug 19 2022)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - moved script to header_alpine.js [#303](https://github.com/mumprod/hr-design-system-handlebars/pull/303) ([@StefanVesper](https://github.com/StefanVesper))
6
+
7
+ #### Authors: 1
8
+
9
+ - SonicSoulSurfer ([@StefanVesper](https://github.com/StefanVesper))
10
+
11
+ ---
12
+
13
+ # v0.55.1 (Fri Aug 19 2022)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - bugfix [#302](https://github.com/mumprod/hr-design-system-handlebars/pull/302) ([@StefanVesper](https://github.com/StefanVesper))
18
+
19
+ #### Authors: 1
20
+
21
+ - SonicSoulSurfer ([@StefanVesper](https://github.com/StefanVesper))
22
+
23
+ ---
24
+
25
+ # v0.55.0 (Fri Aug 19 2022)
26
+
27
+ #### 🚀 Enhancement
28
+
29
+ - Dpe 1689 teaser content navi [#301](https://github.com/mumprod/hr-design-system-handlebars/pull/301) ([@StefanVesper](https://github.com/StefanVesper))
30
+
31
+ #### Authors: 1
32
+
33
+ - SonicSoulSurfer ([@StefanVesper](https://github.com/StefanVesper))
34
+
35
+ ---
36
+
1
37
  # v0.54.3 (Fri Aug 19 2022)
2
38
 
3
39
  #### 🐛 Bug Fix
@@ -434,7 +434,7 @@ video {
434
434
  --tw-scale-y: 1;
435
435
  }
436
436
 
437
- .btn--secondary, .shadow-inner, .shadow-xl {
437
+ .btn--secondary, .shadow-\[0_13px_27px_-2px_rgba\(50\2c 50\2c 93\2c 0\.25\)\], .shadow-inner, .shadow-xl {
438
438
  --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);
439
439
  --tw-ring-shadow: 0 0 rgba(0,0,0,0);
440
440
  --tw-shadow: 0 0 rgba(0,0,0,0);
@@ -674,6 +674,9 @@ video {
674
674
  .\!m-0 {
675
675
  margin: 0px !important;
676
676
  }
677
+ .m-0 {
678
+ margin: 0px;
679
+ }
677
680
  .m-1\.5 {
678
681
  margin: 0.375rem;
679
682
  }
@@ -688,6 +691,10 @@ video {
688
691
  margin-left: 1.25rem;
689
692
  margin-right: 1.25rem;
690
693
  }
694
+ .my-2 {
695
+ margin-top: 0.5rem;
696
+ margin-bottom: 0.5rem;
697
+ }
691
698
  .mx-4 {
692
699
  margin-left: 1rem;
693
700
  margin-right: 1rem;
@@ -718,6 +725,18 @@ video {
718
725
  .\!mt-4 {
719
726
  margin-top: 1rem !important;
720
727
  }
728
+ .mb-2 {
729
+ margin-bottom: 0.5rem;
730
+ }
731
+ .\!mb-0 {
732
+ margin-bottom: 0px !important;
733
+ }
734
+ .mr-2 {
735
+ margin-right: 0.5rem;
736
+ }
737
+ .mt-1 {
738
+ margin-top: 0.25rem;
739
+ }
721
740
  .ml-2 {
722
741
  margin-left: 0.5rem;
723
742
  }
@@ -809,6 +828,12 @@ video {
809
828
  .h-10 {
810
829
  height: 2.5rem;
811
830
  }
831
+ .h-8 {
832
+ height: 2rem;
833
+ }
834
+ .h-4 {
835
+ height: 1rem;
836
+ }
812
837
  .h-full {
813
838
  height: 100%;
814
839
  }
@@ -842,12 +867,6 @@ video {
842
867
  .h-3 {
843
868
  height: 0.75rem;
844
869
  }
845
- .h-4 {
846
- height: 1rem;
847
- }
848
- .h-8 {
849
- height: 2rem;
850
- }
851
870
  .h-6 {
852
871
  height: 1.5rem;
853
872
  }
@@ -872,6 +891,17 @@ video {
872
891
  .w-10 {
873
892
  width: 2.5rem;
874
893
  }
894
+ .\!w-full {
895
+ width: 100% !important;
896
+ }
897
+ .w-fit {
898
+ width: -webkit-fit-content;
899
+ width: -moz-fit-content;
900
+ width: fit-content;
901
+ }
902
+ .w-4 {
903
+ width: 1rem;
904
+ }
875
905
  .w-6 {
876
906
  width: 1.5rem;
877
907
  }
@@ -884,6 +914,9 @@ video {
884
914
  .w-40 {
885
915
  width: 10rem;
886
916
  }
917
+ .w-auto {
918
+ width: auto;
919
+ }
887
920
  .w-3\.5 {
888
921
  width: 0.875rem;
889
922
  }
@@ -895,9 +928,6 @@ video {
895
928
  width: -moz-max-content;
896
929
  width: max-content;
897
930
  }
898
- .w-4 {
899
- width: 1rem;
900
- }
901
931
  .w-9 {
902
932
  width: 2.25rem;
903
933
  }
@@ -1128,9 +1158,18 @@ video {
1128
1158
  .rounded-xl {
1129
1159
  border-radius: 0.75rem;
1130
1160
  }
1161
+ .\!rounded-none {
1162
+ border-radius: 0px !important;
1163
+ }
1164
+ .rounded-none {
1165
+ border-radius: 0px;
1166
+ }
1131
1167
  .rounded {
1132
1168
  border-radius: 0.25rem;
1133
1169
  }
1170
+ .rounded-sm {
1171
+ border-radius: 0.125rem;
1172
+ }
1134
1173
  .rounded-t-xl {
1135
1174
  border-top-left-radius: 0.75rem;
1136
1175
  border-top-right-radius: 0.75rem;
@@ -1167,21 +1206,30 @@ video {
1167
1206
  border-left-width: 1px;
1168
1207
  border-right-width: 1px;
1169
1208
  }
1209
+ .border-l-0 {
1210
+ border-left-width: 0px;
1211
+ }
1212
+ .border-r-0 {
1213
+ border-right-width: 0px;
1214
+ }
1215
+ .border-t-0 {
1216
+ border-top-width: 0px;
1217
+ }
1218
+ .border-b {
1219
+ border-bottom-width: 1px;
1220
+ }
1170
1221
  .border-r {
1171
1222
  border-right-width: 1px;
1172
1223
  }
1173
1224
  .border-l-2 {
1174
1225
  border-left-width: 2px;
1175
1226
  }
1176
- .border-b {
1177
- border-bottom-width: 1px;
1227
+ .border-l {
1228
+ border-left-width: 1px;
1178
1229
  }
1179
1230
  .border-b-0 {
1180
1231
  border-bottom-width: 0px;
1181
1232
  }
1182
- .border-l {
1183
- border-left-width: 1px;
1184
- }
1185
1233
  .border-t {
1186
1234
  border-top-width: 1px;
1187
1235
  }
@@ -1206,6 +1254,10 @@ video {
1206
1254
  border-color: #006dc1;
1207
1255
  border-color: var(--color-topline);
1208
1256
  }
1257
+ .border-blue-congress {
1258
+ --tw-border-opacity: 1;
1259
+ border-color: rgba(0, 82, 147, var(--tw-border-opacity));
1260
+ }
1209
1261
  .border-gray-400 {
1210
1262
  --tw-border-opacity: 1;
1211
1263
  border-color: rgba(156, 163, 175, var(--tw-border-opacity));
@@ -1218,10 +1270,6 @@ video {
1218
1270
  --tw-border-opacity: 1;
1219
1271
  border-color: rgba(229, 231, 235, var(--tw-border-opacity));
1220
1272
  }
1221
- .border-blue-congress {
1222
- --tw-border-opacity: 1;
1223
- border-color: rgba(0, 82, 147, var(--tw-border-opacity));
1224
- }
1225
1273
  .bg-red-200 {
1226
1274
  --tw-bg-opacity: 1;
1227
1275
  background-color: rgba(254, 202, 202, var(--tw-bg-opacity));
@@ -1345,6 +1393,9 @@ video {
1345
1393
  .fill-white {
1346
1394
  fill: #ffffff;
1347
1395
  }
1396
+ .fill-congress {
1397
+ fill: #005293;
1398
+ }
1348
1399
  .fill-current {
1349
1400
  fill: currentColor;
1350
1401
  }
@@ -1423,14 +1474,14 @@ video {
1423
1474
  padding-top: 1rem;
1424
1475
  padding-bottom: 1rem;
1425
1476
  }
1426
- .py-1\.5 {
1427
- padding-top: 0.375rem;
1428
- padding-bottom: 0.375rem;
1429
- }
1430
1477
  .py-1 {
1431
1478
  padding-top: 0.25rem;
1432
1479
  padding-bottom: 0.25rem;
1433
1480
  }
1481
+ .py-1\.5 {
1482
+ padding-top: 0.375rem;
1483
+ padding-bottom: 0.375rem;
1484
+ }
1434
1485
  .px-0 {
1435
1486
  padding-left: 0px;
1436
1487
  padding-right: 0px;
@@ -1447,12 +1498,12 @@ video {
1447
1498
  padding-top: 1px;
1448
1499
  padding-bottom: 1px;
1449
1500
  }
1450
- .pt-px {
1451
- padding-top: 1px;
1452
- }
1453
1501
  .pl-4 {
1454
1502
  padding-left: 1rem;
1455
1503
  }
1504
+ .pt-px {
1505
+ padding-top: 1px;
1506
+ }
1456
1507
  .pr-2 {
1457
1508
  padding-right: 0.5rem;
1458
1509
  }
@@ -1705,6 +1756,15 @@ video {
1705
1756
  .opacity-80 {
1706
1757
  opacity: 0.8;
1707
1758
  }
1759
+ .shadow-\[0_13px_27px_-2px_rgba\(50\2c 50\2c 93\2c 0\.25\)\] {
1760
+ --tw-shadow: 0 13px 27px -2px rgba(50,50,93,0.25);
1761
+ --tw-shadow-colored: 0 13px 27px -2px var(--tw-shadow-color);
1762
+ -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
1763
+ box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
1764
+ box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
1765
+ -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);
1766
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);
1767
+ }
1708
1768
  .shadow-inner {
1709
1769
  --tw-shadow: inset 0 0px 5px 0 rgba(0, 0, 0, 0.25);
1710
1770
  --tw-shadow-colored: inset 0 0px 5px 0 var(--tw-shadow-color);
@@ -1807,7 +1867,7 @@ video {
1807
1867
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
1808
1868
  }
1809
1869
  .counter-reset {
1810
- counter-reset: cnt1660915599908;
1870
+ counter-reset: cnt1660924214352;
1811
1871
  }
1812
1872
  .placeholder-text-xs::-webkit-input-placeholder {
1813
1873
  font-size: 0.75rem;
@@ -2190,7 +2250,7 @@ video {
2190
2250
  --tw-ring-color: rgba(255, 255, 255, 0.5);
2191
2251
  }
2192
2252
  .-ordered {
2193
- counter-increment: cnt1660915599908 1;
2253
+ counter-increment: cnt1660924214352 1;
2194
2254
  }
2195
2255
  .-ordered::before {
2196
2256
  position: absolute;
@@ -2207,7 +2267,7 @@ video {
2207
2267
  letter-spacing: .0125em;
2208
2268
  --tw-text-opacity: 1;
2209
2269
  color: rgba(0, 0, 0, var(--tw-text-opacity));
2210
- content: counter(cnt1660915599908);
2270
+ content: counter(cnt1660924214352);
2211
2271
  }
2212
2272
  /*! purgecss start ignore */
2213
2273
  :root,
@@ -2622,6 +2682,9 @@ video {
2622
2682
  .hover\:fill-blue-jellyBean:hover {
2623
2683
  fill: #006dc1;
2624
2684
  }
2685
+ .hover\:fill-white:hover {
2686
+ fill: #ffffff;
2687
+ }
2625
2688
  .hover\:fill-orange-spicyCarrot:hover {
2626
2689
  fill: #d34600;
2627
2690
  }
@@ -2691,6 +2754,14 @@ video {
2691
2754
  position: absolute;
2692
2755
  }
2693
2756
 
2757
+ .md\:relative {
2758
+ position: relative;
2759
+ }
2760
+
2761
+ .md\:left-0 {
2762
+ left: 0px;
2763
+ }
2764
+
2694
2765
  .md\:top-auto {
2695
2766
  top: auto;
2696
2767
  }
@@ -2703,10 +2774,6 @@ video {
2703
2774
  top: 3rem;
2704
2775
  }
2705
2776
 
2706
- .md\:left-0 {
2707
- left: 0px;
2708
- }
2709
-
2710
2777
  .md\:z-10000 {
2711
2778
  z-index: 10000;
2712
2779
  }
@@ -2739,11 +2806,35 @@ video {
2739
2806
  grid-column: span 3 / span 3;
2740
2807
  }
2741
2808
 
2809
+ .md\:col-span-9 {
2810
+ grid-column: span 9 / span 9;
2811
+ }
2812
+
2742
2813
  .md\:mx-0 {
2743
2814
  margin-left: 0px;
2744
2815
  margin-right: 0px;
2745
2816
  }
2746
2817
 
2818
+ .md\:mb-0 {
2819
+ margin-bottom: 0px;
2820
+ }
2821
+
2822
+ .md\:\!mr-0 {
2823
+ margin-right: 0px !important;
2824
+ }
2825
+
2826
+ .md\:\!mr-2 {
2827
+ margin-right: 0.5rem !important;
2828
+ }
2829
+
2830
+ .md\:\!mb-2 {
2831
+ margin-bottom: 0.5rem !important;
2832
+ }
2833
+
2834
+ .md\:mr-2 {
2835
+ margin-right: 0.5rem;
2836
+ }
2837
+
2747
2838
  .md\:mt-0 {
2748
2839
  margin-top: 0px;
2749
2840
  }
@@ -2782,6 +2873,10 @@ video {
2782
2873
  height: 1.75rem;
2783
2874
  }
2784
2875
 
2876
+ .md\:h-auto {
2877
+ height: auto;
2878
+ }
2879
+
2785
2880
  .md\:h-full {
2786
2881
  height: 100%;
2787
2882
  }
@@ -2790,6 +2885,22 @@ video {
2790
2885
  height: 2rem;
2791
2886
  }
2792
2887
 
2888
+ .md\:\!w-full {
2889
+ width: 100% !important;
2890
+ }
2891
+
2892
+ .md\:\!w-fit {
2893
+ width: -webkit-fit-content !important;
2894
+ width: -moz-fit-content !important;
2895
+ width: fit-content !important;
2896
+ }
2897
+
2898
+ .md\:w-fit {
2899
+ width: -webkit-fit-content;
2900
+ width: -moz-fit-content;
2901
+ width: fit-content;
2902
+ }
2903
+
2793
2904
  .md\:w-1\/2 {
2794
2905
  width: 50%;
2795
2906
  }
@@ -2859,6 +2970,14 @@ video {
2859
2970
  justify-content: flex-end;
2860
2971
  }
2861
2972
 
2973
+ .md\:overflow-visible {
2974
+ overflow: visible;
2975
+ }
2976
+
2977
+ .md\:\!rounded {
2978
+ border-radius: 0.25rem !important;
2979
+ }
2980
+
2862
2981
  .md\:rounded-none {
2863
2982
  border-radius: 0px;
2864
2983
  }
@@ -2871,6 +2990,10 @@ video {
2871
2990
  border-bottom-right-radius: 1.5rem;
2872
2991
  }
2873
2992
 
2993
+ .md\:\!border {
2994
+ border-width: 1px !important;
2995
+ }
2996
+
2874
2997
  .md\:border-0 {
2875
2998
  border-width: 0px;
2876
2999
  }
@@ -0,0 +1,108 @@
1
+ import { hr$, stripTags, throttle } from 'hrQuery'
2
+
3
+ const AutoSuggest = function (context) {
4
+ const { options } = context,
5
+ { element: rootElement } = context,
6
+ filterGroups = hr$(options.filterGroupsSelector, rootElement),
7
+ /*Node-List von Elementen die gefiltert werden sollen*/
8
+ filterElements = hr$(options.filterElementSelector, rootElement),
9
+ /*Klasse die gesetzt wird auf zutreffende Einträge*/
10
+ matchedClass = options.matchedClass,
11
+ /*Klasse die gesetzt wird auf gefilterte Einträge*/
12
+ unmatchedClass = options.unmatchedClass,
13
+ inputEl = hr$(options.inputElementSelector, rootElement)[0]
14
+
15
+ const filterList = function (value) {
16
+ for (let j = 0; j < filterElements.length; j++) {
17
+ filterElement(filterElements[j], value)
18
+ }
19
+
20
+ for (let i = 0; i < filterGroups.length; i++) {
21
+ if (hr$('.' + matchedClass, filterGroups[i]).length > 0) {
22
+ filterGroups[i].classList.add(matchedClass)
23
+ filterGroups[i].classList.remove(unmatchedClass)
24
+ } else {
25
+ filterGroups[i].classList.remove(matchedClass)
26
+ filterGroups[i].classList.add(unmatchedClass)
27
+ }
28
+ }
29
+ }
30
+
31
+ const removeHighlight = function () {
32
+ for (let i = 0; i < filterElements.length; i++) {
33
+ let textEl = hr$(options.filterTextSelector, filterElements[i])[0]
34
+ textEl.innerHTML = stripTags(textEl.innerHTML)
35
+ }
36
+ }
37
+
38
+ const resetList = function () {
39
+ for (let i = 0; i < filterElements.length; i++) {
40
+ matchedClass ? filterElements[i].classList.add(matchedClass) : null
41
+ unmatchedClass ? filterElements[i].classList.remove(unmatchedClass) : null
42
+ }
43
+
44
+ for (let j = 0; j < filterGroups.length; j++) {
45
+ filterGroups[j].classList.add(matchedClass)
46
+ filterGroups[j].classList.remove(unmatchedClass)
47
+ }
48
+ }
49
+
50
+ const filterElement = function (elem, value) {
51
+ let textEl = hr$(options.filterTextSelector, elem)[0],
52
+ text = textEl.text || textEl.textContent,
53
+ words = text.split(' '),
54
+ hasMatch = false
55
+
56
+ for (let i = 0; i < words.length; i++) {
57
+ if (
58
+ words[i].toLowerCase().indexOf(value.toLowerCase(), 0) === 0 &&
59
+ hr$('.-current', elem).length === 0
60
+ ) {
61
+ hasMatch = true
62
+ words[i] =
63
+ "<span style='color:#ff9000' >" +
64
+ words[i].slice(0, value.length) +
65
+ '</span>' +
66
+ words[i].slice(value.length)
67
+ }
68
+ }
69
+
70
+ if (hasMatch) {
71
+ //wenn wert enthalten
72
+ unmatchedClass ? elem.classList.remove(unmatchedClass) : null
73
+ matchedClass ? elem.classList.add(matchedClass) : null
74
+
75
+ textEl.innerHTML = words.join(' ')
76
+ } else {
77
+ unmatchedClass ? elem.classList.add(unmatchedClass) : null
78
+ matchedClass ? elem.classList.remove(matchedClass) : null
79
+ }
80
+ }
81
+
82
+ const handleInput = throttle(function (event) {
83
+ event.stopPropagation()
84
+
85
+ let val = event.target.value
86
+
87
+ if (val.length > 0) {
88
+ filterList(val)
89
+ } else {
90
+ resetList()
91
+ removeHighlight()
92
+ }
93
+ }, 240)
94
+
95
+
96
+ console.log('fes:' + filterElements.length)
97
+ console.log('ielc:' + options.inputClasses)
98
+
99
+
100
+ inputEl.addEventListener('input', handleInput)
101
+
102
+ window.addEventListener('resetinput', () => {
103
+ resetList()
104
+ removeHighlight()
105
+ } )
106
+ }
107
+
108
+ export default AutoSuggest