1
1
<script setup lang="ts">
2
2
import { type PropType , computed } from ' vue'
3
3
4
- import { type RuleMeta , type Filter , languages } from ' ./data'
4
+ import { type RuleMeta , type Filter , languages , intersect } from ' ./data'
5
5
import Option from ' ./Option.vue'
6
6
7
7
const { meta, filter } = defineProps ({
@@ -37,13 +37,13 @@ const displayedRules = computed(() => {
37
37
const result = sortedOptions (meta .rules , filter .selectedRuleFilters )
38
38
return result .slice (0 , displayRuleCount .value )
39
39
})
40
- const moreRules = computed (() => meta .rules .length - displayRuleCount .value )
40
+ const moreRules = computed (() => meta .rules .slice ( displayRuleCount .value ) )
41
41
42
42
const displayFeatures = computed (() => {
43
43
const result = sortedOptions (meta .features , filter .selectedFeatures )
44
44
return result .slice (0 , 2 )
45
45
})
46
- const moreFeatures = computed (() => Math . max ( displayFeatures . value . length - 2 , 0 ))
46
+ const moreFeatures = computed (() => meta . features . slice ( 2 ))
47
47
</script >
48
48
49
49
<template >
@@ -76,9 +76,10 @@ const moreFeatures = computed(() => Math.max(displayFeatures.value.length - 2, 0
76
76
:highlight =" filter.selectedRuleFilters.includes(rule)"
77
77
/>
78
78
<Option
79
- v-if =" moreRules"
80
- :text =" `+${moreRules}`"
81
- :data-title =" meta.rules.slice(displayRuleCount).join(', ')"
79
+ v-if =" moreRules.length"
80
+ :text =" `+${moreRules.length}`"
81
+ :data-title =" moreRules.join(', ')"
82
+ :highlight =" intersect(moreRules, filter.selectedRuleFilters)"
82
83
/>
83
84
</template >
84
85
</div >
@@ -91,9 +92,10 @@ const moreFeatures = computed(() => Math.max(displayFeatures.value.length - 2, 0
91
92
:highlight =" filter.selectedFeatures.includes(feature)"
92
93
/>
93
94
<Option
94
- v-if =" moreFeatures"
95
- :text =" `+${moreFeatures}`"
96
- :data-title =" meta.features.slice(2).join(', ')"
95
+ v-if =" moreFeatures.length"
96
+ :text =" `+${moreFeatures.length}`"
97
+ :data-title =" moreFeatures.join(', ')"
98
+ :highlight =" intersect(moreFeatures, filter.selectedFeatures)"
97
99
/>
98
100
</div >
99
101
<a :href =" meta.playgroundLink" class =" playground link" target =" _blank" >
0 commit comments