11<script lang="ts" setup generic =" T = any , U = RangeValueType <T >" >
2- import type { RangeData , RangeMarks , RangeRenderFn , RangeValue , RangeValueType } from ' ./type'
2+ import type { RangeData , RangeMarks , RangeProgress , RangeRenderFn , RangeValue , RangeValueType } from ' ./type'
33import { computed , nextTick , provide , ref , watch } from ' vue'
44import { RangeTrackRefKey } from ' ./Range'
55import RangeThumb from ' ./RangeThumb.vue'
@@ -17,6 +17,7 @@ const props = withDefaults(defineProps<{
1717 smooth? : boolean
1818 deduplicate? : boolean
1919 rangeHighlight? : boolean
20+ progress? : RangeProgress
2021 showStops? : boolean | number
2122 size? : ' small' | ' medium' | ' large'
2223 thumbType? : ' circle' | ' square' | ' rect'
@@ -253,6 +254,24 @@ provide(RangeTrackRefKey, trackRef)
253254 : { left: `${Math.min(...Object.values(position))}%`, right: `${100 - Math.max(...Object.values(position))}%` }"
254255 />
255256 </div >
257+ <div v-if =" progress?.length" class =" m-range-progress-container" >
258+ <template v-for =" bar , idx in progress " :key =" idx " >
259+ <div
260+ v-if =" (Array.isArray(bar))"
261+ :class =" vertical ? 'm-range-v-progress' : 'm-range-progress'"
262+ :style =" vertical
263+ ? { top: `${getPercentage(bar[0])}%`, bottom: `${100 - getPercentage(bar[1])}%` }
264+ : { left: `${getPercentage(bar[0])}%`, right: `${100 - getPercentage(bar[1])}%` }"
265+ />
266+ <div
267+ v-else
268+ :class =" [vertical ? 'm-range-v-progress' : 'm-range-progress', bar.class]"
269+ :style =" vertical
270+ ? { top: `${getPercentage(bar.range[0])}%`, bottom: `${100 - getPercentage(bar.range[1])}%`, ...bar.style }
271+ : { left: `${getPercentage(bar.range[0])}%`, right: `${100 - getPercentage(bar.range[1])}%`, ...bar.style }"
272+ />
273+ </template >
274+ </div >
256275 <div v-if =" stops > 0" class =" m-range-points-area" >
257276 <div :class =" vertical ? 'm-range-v-points-container' : 'm-range-points-container'" >
258277 <div v-for =" index in stops" :key =" index" class =" m-range-points" />
0 commit comments