1- <script lang="ts" setup>
1+ <script lang="ts" setup generic = " T " >
22import { computed , nextTick , provide , ref , watch } from ' vue'
33import { RangeContainerRefKey , RangeTrackRefKey } from ' ./Range'
44import RangeThumb from ' ./RangeThumb.vue'
55import type { RangeData , RangeRenderFn , RangeValue } from ' ./type'
66import { percentage2value , swap , value2percentage } from ' ./utils'
77
88const props = withDefaults (defineProps <{
9- modelValue: RangeValue
9+ modelValue: RangeValue < T >
1010 min? : number
1111 max? : number
1212 step? : number
@@ -15,8 +15,8 @@ const props = withDefaults(defineProps<{
1515 smooth? : boolean
1616 deduplicate? : boolean
1717 rangeHighlight? : boolean
18- renderTop? : RangeRenderFn
19- renderBottom? : RangeRenderFn
18+ renderTop? : RangeRenderFn < T >
19+ renderBottom? : RangeRenderFn < T >
2020}>(), {
2121 modelValue : () => [],
2222 min: 0 ,
@@ -39,7 +39,7 @@ const modelType = computed<'single' | 'numbers' | 'data'>(() => {
3939 else
4040 return ' single'
4141})
42- const model = computed <RangeData []>({
42+ const model = computed <RangeData < T > []>({
4343 get : () => {
4444 const value = props .modelValue
4545 if (Array .isArray (value ))
@@ -64,7 +64,7 @@ const allowAdd = computed(() =>
6464)
6565
6666const indexMap = ref <number []>([])
67- function sort(val : RangeData []) {
67+ function sort(val : RangeData < T > []) {
6868 let changed = false
6969 for (let i = val .length ; i > 0 ; i -- ) {
7070 for (let j = 0 ; j < i - 1 ; j ++ ) {
0 commit comments