Range
Let the user specify a numeric value which must be no less than a given value, and no more than another given value. The precise value, however, is not considered important. This is typically represented using a slider or dial control rather than a text entry box like the number input type.
Examples
Range
Code
vue
<script setup lang="ts">
import { ref } from 'vue'
const form = ref({
volume: 50
})
</script>
<template>
<form @submit.prevent="">
<base-range v-model="form.volume" />
</form>
</template>Label
Add label to input range
Code
vue
<script setup lang="ts">
import { ref } from 'vue'
const form = ref({
volume: 50
})
</script>
<template>
<form @submit.prevent="">
<base-range v-model="form.volume" layout="vertical" label="Vertical" />
<base-range v-model="form.volume" layout="horizontal" label="Horizontal" />
</form>
</template>Text
Show value text
Code
vue
<script setup lang="ts">
import { ref } from 'vue'
const form = ref({
volume: 50
})
</script>
<template>
<form @submit.prevent="">
<base-range v-model="form.volume" label="Volume" showText />
</form>
</template>Helper
Input range helper description, helper message and error message
Code
vue
<script setup lang="ts">
import { ref } from 'vue'
const form = ref({
volume: 50
})
const errors = ref(['Example Error'])
</script>
<template>
<form @submit.prevent="">
<base-range description="Example Description" v-model="form.volume" label="Volume" />
<base-range :helpers="['Example Helper']" v-model="form.volume" label="Volume" />
<base-range v-model:errors="errors" v-model="form.volume" label="Volume" />
</form>
</template>Range API
Types
ts
export type BaseFormLayoutType = 'vertical' | 'horizontal'Props
| Name | Type | Default | Description |
|---|---|---|---|
| v-model | string | v-model is required. | |
| v-model:errors | string[] | Input error message. | |
| id | string | Input id. | |
| label | string | Input label. | |
| description | string | Input description. | |
| layout | BaseFormLayoutType | horizontal | Input layout. |
| show-text | boolean | false | Show range value. |
| disabled | boolean | false | if true range is disabled. |
| helpers | string[] | Input helper message. | |
| data-testid | string | Testing ID. |
Automated Test Guide
If you pass a data-testid to the <base-range> component, it will automatically generate unique data-testid attributes for testing.
Gherkin Scenario
txt
When I change range "speed" into "25"Step Definition
ts
When('I change range {string} to {string}', (selector: string, value: string) => {
cy.get(`[data-testid="${selector}"]`).type(value)
})Code Implementation
vue
<script setup>
import { ref } from 'vue'
const speed = ref(0)
</script>
<template>
<base-range v-model="speed" data-testid="speed" />
</template>