@v-c/slider 1.0.3 → 1.0.5
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.
- package/dist/Handles/Handle.cjs +191 -1
- package/dist/Handles/Handle.d.ts +4 -4
- package/dist/Handles/Handle.js +187 -204
- package/dist/Handles/index.cjs +108 -1
- package/dist/Handles/index.d.ts +1 -1
- package/dist/Handles/index.js +105 -120
- package/dist/Marks/Mark.cjs +51 -1
- package/dist/Marks/Mark.d.ts +2 -2
- package/dist/Marks/Mark.js +48 -39
- package/dist/Marks/index.cjs +39 -1
- package/dist/Marks/index.d.ts +2 -2
- package/dist/Marks/index.js +36 -32
- package/dist/Slider.cjs +557 -1
- package/dist/Slider.d.ts +53 -267
- package/dist/Slider.js +551 -352
- package/dist/Steps/Dot.cjs +52 -1
- package/dist/Steps/Dot.d.ts +2 -2
- package/dist/Steps/Dot.js +49 -38
- package/dist/Steps/index.cjs +64 -1
- package/dist/Steps/index.d.ts +2 -2
- package/dist/Steps/index.js +61 -41
- package/dist/Tracks/Track.cjs +74 -1
- package/dist/Tracks/Track.js +70 -81
- package/dist/Tracks/index.cjs +70 -1
- package/dist/Tracks/index.js +66 -82
- package/dist/_virtual/rolldown_runtime.cjs +21 -0
- package/dist/context.cjs +39 -1
- package/dist/context.d.ts +13 -7
- package/dist/context.js +29 -24
- package/dist/hooks/useDrag.cjs +160 -1
- package/dist/hooks/useDrag.d.ts +2 -2
- package/dist/hooks/useDrag.js +155 -86
- package/dist/hooks/useOffset.cjs +124 -1
- package/dist/hooks/useOffset.d.ts +2 -1
- package/dist/hooks/useOffset.js +122 -110
- package/dist/hooks/useRange.cjs +21 -1
- package/dist/hooks/useRange.js +18 -9
- package/dist/index.cjs +6 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -4
- package/dist/interface.cjs +0 -1
- package/dist/interface.js +0 -1
- package/dist/util.cjs +32 -1
- package/dist/util.js +27 -26
- package/package.json +18 -10
- package/docs/TooltipSlider.tsx +0 -94
- package/docs/assets/anim.less +0 -63
- package/docs/assets/bootstrap.less +0 -163
- package/docs/assets/index.less +0 -337
- package/docs/debug.vue +0 -59
- package/docs/editable.vue +0 -58
- package/docs/handle.vue +0 -51
- package/docs/marks.vue +0 -104
- package/docs/multiple.vue +0 -50
- package/docs/range.vue +0 -224
- package/docs/slider.stories.vue +0 -45
- package/docs/sliderDemo.vue +0 -283
- package/docs/vertical.vue +0 -135
- package/src/Handles/Handle.tsx +0 -232
- package/src/Handles/index.tsx +0 -132
- package/src/Marks/Mark.tsx +0 -40
- package/src/Marks/index.tsx +0 -40
- package/src/Slider.tsx +0 -602
- package/src/Steps/Dot.tsx +0 -40
- package/src/Steps/index.tsx +0 -54
- package/src/Tracks/Track.tsx +0 -89
- package/src/Tracks/index.tsx +0 -92
- package/src/context.ts +0 -65
- package/src/hooks/useDrag.ts +0 -243
- package/src/hooks/useOffset.ts +0 -272
- package/src/hooks/useRange.ts +0 -24
- package/src/index.ts +0 -8
- package/src/interface.ts +0 -17
- package/src/util.ts +0 -41
- package/vite.config.ts +0 -18
- package/vitest.config.ts +0 -11
package/docs/range.vue
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { CSSProperties } from 'vue'
|
|
3
|
-
import Slider from '@v-c/slider'
|
|
4
|
-
import { reactive, ref } from 'vue'
|
|
5
|
-
|
|
6
|
-
const data1 = ref([0, 20])
|
|
7
|
-
const data2 = ref([0, 20])
|
|
8
|
-
const data3 = ref([20, 20])
|
|
9
|
-
const data4 = ref([20, 40])
|
|
10
|
-
const data5 = ref([0, 20])
|
|
11
|
-
const data6 = ref([20, 40, 60, 80])
|
|
12
|
-
const data7 = ref([20, 40, 60, 80])
|
|
13
|
-
const data10 = ref([20, 50])
|
|
14
|
-
const data11 = ref([20, 40, 60, 80])
|
|
15
|
-
const data12 = ref([0, 40])
|
|
16
|
-
const data13 = ref([0, 40])
|
|
17
|
-
const data14 = ref([0, 20, 30, 40, 50])
|
|
18
|
-
|
|
19
|
-
const style: CSSProperties = {
|
|
20
|
-
width: '400px',
|
|
21
|
-
margin: '50px',
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function log(value: unknown) {
|
|
25
|
-
console.log(value)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// CustomizedRange组件
|
|
29
|
-
const customizedRange = reactive({
|
|
30
|
-
lowerBound: 20,
|
|
31
|
-
upperBound: 40,
|
|
32
|
-
value: [20, 40],
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
function onLowerBoundChange(e: any) {
|
|
36
|
-
customizedRange.lowerBound = +e.target.value
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function onUpperBoundChange(e: any) {
|
|
40
|
-
customizedRange.upperBound = +e.target.value
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function onSliderChange(value: any) {
|
|
44
|
-
log(value)
|
|
45
|
-
customizedRange.value = value
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function handleApply() {
|
|
49
|
-
const { lowerBound, upperBound } = customizedRange
|
|
50
|
-
customizedRange.value = [lowerBound, upperBound]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// DynamicBounds组件
|
|
54
|
-
const dynamicBounds = reactive({
|
|
55
|
-
min: 0,
|
|
56
|
-
max: 100,
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
function onDynamicSliderChange(value: unknown) {
|
|
60
|
-
log(value)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function onMinChange(e: any) {
|
|
64
|
-
dynamicBounds.min = +e.target.value || 0
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function onMaxChange(e: any) {
|
|
68
|
-
dynamicBounds.max = +e.target.value || 100
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// ControlledRange组件
|
|
72
|
-
const controlledRangeValue = ref([20, 40, 60, 80])
|
|
73
|
-
|
|
74
|
-
function handleControlledRangeChange(value: any) {
|
|
75
|
-
controlledRangeValue.value = value
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// ControlledRangeDisableAcross组件
|
|
79
|
-
const controlledRangeDisableAcrossValue = ref([20, 40, 60, 80])
|
|
80
|
-
|
|
81
|
-
function handleControlledRangeDisableAcrossChange(value: any) {
|
|
82
|
-
controlledRangeDisableAcrossValue.value = value
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// PureRenderRange组件
|
|
86
|
-
const pureRenderRangeFoo = ref(false)
|
|
87
|
-
|
|
88
|
-
function handlePureRenderRangeChange(value: any) {
|
|
89
|
-
console.log(value)
|
|
90
|
-
pureRenderRangeFoo.value = !pureRenderRangeFoo.value
|
|
91
|
-
}
|
|
92
|
-
</script>
|
|
93
|
-
|
|
94
|
-
<template>
|
|
95
|
-
<div>
|
|
96
|
-
<div :style="style">
|
|
97
|
-
<p>Basic Range,`allowCross=false`</p>
|
|
98
|
-
<Slider v-model:value="data1" range :allow-cross="false" @change="log" />
|
|
99
|
-
</div>
|
|
100
|
-
<div :style="style">
|
|
101
|
-
<p>Basic reverse Range`</p>
|
|
102
|
-
<Slider v-model:value="data2" range :allow-cross="false" reverse @change="log" />
|
|
103
|
-
</div>
|
|
104
|
-
<div :style="style">
|
|
105
|
-
<p>Basic Range,`step=20` </p>
|
|
106
|
-
<Slider v-model:value="data3" range :step="20" @before-change="log" />
|
|
107
|
-
</div>
|
|
108
|
-
<div :style="style">
|
|
109
|
-
<p>Basic Range,`step=20, dots` </p>
|
|
110
|
-
<Slider v-model:value="data4" range dots :step="20" @change-complete="log" />
|
|
111
|
-
</div>
|
|
112
|
-
<div :style="style">
|
|
113
|
-
<p>Basic Range,disabled</p>
|
|
114
|
-
<Slider v-model:value="data5" range :allow-cross="false" disabled @change="log" />
|
|
115
|
-
</div>
|
|
116
|
-
<div :style="style">
|
|
117
|
-
<p>Controlled Range</p>
|
|
118
|
-
<Slider range :value="controlledRangeValue" @change="handleControlledRangeChange" />
|
|
119
|
-
</div>
|
|
120
|
-
<div :style="style">
|
|
121
|
-
<p>Controlled Range, not allow across</p>
|
|
122
|
-
<Slider
|
|
123
|
-
range
|
|
124
|
-
:value="controlledRangeDisableAcrossValue"
|
|
125
|
-
:allow-cross="false"
|
|
126
|
-
@change="handleControlledRangeDisableAcrossChange"
|
|
127
|
-
/>
|
|
128
|
-
</div>
|
|
129
|
-
<div :style="style">
|
|
130
|
-
<p>Controlled Range, not allow across, pushable=5</p>
|
|
131
|
-
<Slider
|
|
132
|
-
range
|
|
133
|
-
:value="controlledRangeDisableAcrossValue"
|
|
134
|
-
:allow-cross="false"
|
|
135
|
-
:pushable="5"
|
|
136
|
-
@change="handleControlledRangeDisableAcrossChange"
|
|
137
|
-
/>
|
|
138
|
-
</div>
|
|
139
|
-
<div :style="style">
|
|
140
|
-
<p>Multi Range, count=3 and pushable=true</p>
|
|
141
|
-
<Slider v-model:value="data6" range :count="3" pushable />
|
|
142
|
-
</div>
|
|
143
|
-
<div :style="style">
|
|
144
|
-
<p>Multi Range with custom track and handle style and pushable</p>
|
|
145
|
-
<Slider
|
|
146
|
-
v-model:value="data7"
|
|
147
|
-
range
|
|
148
|
-
:count="3"
|
|
149
|
-
pushable
|
|
150
|
-
:track-style="[{ backgroundColor: 'red' }, { backgroundColor: 'green' }]"
|
|
151
|
-
:handle-style="[{ backgroundColor: 'yellow' }, { backgroundColor: 'gray' }]"
|
|
152
|
-
:rail-style="{ backgroundColor: 'black' }"
|
|
153
|
-
/>
|
|
154
|
-
</div>
|
|
155
|
-
<div :style="style">
|
|
156
|
-
<p>Customized Range</p>
|
|
157
|
-
<div>
|
|
158
|
-
<label>LowerBound: </label>
|
|
159
|
-
<input type="number" :value="customizedRange.lowerBound" @change="onLowerBoundChange">
|
|
160
|
-
<br>
|
|
161
|
-
<label>UpperBound: </label>
|
|
162
|
-
<input type="number" :value="customizedRange.upperBound" @change="onUpperBoundChange">
|
|
163
|
-
<br>
|
|
164
|
-
<button type="button" @click="handleApply">
|
|
165
|
-
Apply
|
|
166
|
-
</button>
|
|
167
|
-
<br>
|
|
168
|
-
<br>
|
|
169
|
-
<Slider range :allow-cross="false" :value="customizedRange.value" @change="onSliderChange" />
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
<div :style="style">
|
|
173
|
-
<p>Range with dynamic `max` `min`</p>
|
|
174
|
-
<div>
|
|
175
|
-
<label>Min: </label>
|
|
176
|
-
<input type="number" :value="dynamicBounds.min" @change="onMinChange">
|
|
177
|
-
<br>
|
|
178
|
-
<label>Max: </label>
|
|
179
|
-
<input type="number" :value="dynamicBounds.max" @change="onMaxChange">
|
|
180
|
-
<br>
|
|
181
|
-
<br>
|
|
182
|
-
<Slider
|
|
183
|
-
v-model:value="data10"
|
|
184
|
-
range
|
|
185
|
-
:min="dynamicBounds.min"
|
|
186
|
-
:max="dynamicBounds.max"
|
|
187
|
-
@change="onDynamicSliderChange"
|
|
188
|
-
/>
|
|
189
|
-
</div>
|
|
190
|
-
</div>
|
|
191
|
-
<div :style="style">
|
|
192
|
-
<p>Range as child component</p>
|
|
193
|
-
<Slider
|
|
194
|
-
v-model:value="data11"
|
|
195
|
-
range
|
|
196
|
-
:allow-cross="false"
|
|
197
|
-
@change="handlePureRenderRangeChange"
|
|
198
|
-
/>
|
|
199
|
-
</div>
|
|
200
|
-
<div :style="style">
|
|
201
|
-
<p>draggableTrack two points</p>
|
|
202
|
-
<Slider v-model:value="data12" :range="{ draggableTrack: true }" :allow-cross="false" @change="log" />
|
|
203
|
-
</div>
|
|
204
|
-
<div :style="style">
|
|
205
|
-
<p>draggableTrack two points(reverse)</p>
|
|
206
|
-
<Slider
|
|
207
|
-
v-model:value="data13"
|
|
208
|
-
:range="{ draggableTrack: true }"
|
|
209
|
-
:allow-cross="false"
|
|
210
|
-
reverse
|
|
211
|
-
@change="log"
|
|
212
|
-
/>
|
|
213
|
-
</div>
|
|
214
|
-
<div :style="style">
|
|
215
|
-
<p>draggableTrack multiple points</p>
|
|
216
|
-
<Slider
|
|
217
|
-
v-model:value="data14"
|
|
218
|
-
:range="{ draggableTrack: true }"
|
|
219
|
-
:allow-cross="false"
|
|
220
|
-
@change="log"
|
|
221
|
-
/>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
</template>
|
package/docs/slider.stories.vue
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import Debug from './debug.vue'
|
|
3
|
-
import Editable from './editable.vue'
|
|
4
|
-
import Handle from './handle.vue'
|
|
5
|
-
import Marks from './marks.vue'
|
|
6
|
-
import Multiple from './multiple.vue'
|
|
7
|
-
import Range from './range.vue'
|
|
8
|
-
import SliderDemo from './sliderDemo.vue'
|
|
9
|
-
import Vertical from './vertical.vue'
|
|
10
|
-
|
|
11
|
-
import '../docs/assets/index.less'
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<template>
|
|
15
|
-
<Story title="Slider">
|
|
16
|
-
<Variant title="debug">
|
|
17
|
-
<Debug />
|
|
18
|
-
</Variant>
|
|
19
|
-
<Variant title="Editable">
|
|
20
|
-
<Editable />
|
|
21
|
-
</Variant>
|
|
22
|
-
<Variant title="Handle">
|
|
23
|
-
<Handle />
|
|
24
|
-
</Variant>
|
|
25
|
-
<Variant title="Marks">
|
|
26
|
-
<Marks />
|
|
27
|
-
</Variant>
|
|
28
|
-
<Variant title="Multiple">
|
|
29
|
-
<Multiple />
|
|
30
|
-
</Variant>
|
|
31
|
-
<Variant title="Range">
|
|
32
|
-
<Range />
|
|
33
|
-
</Variant>
|
|
34
|
-
<Variant title="Slider">
|
|
35
|
-
<SliderDemo />
|
|
36
|
-
</Variant>
|
|
37
|
-
<Variant title="Vertical">
|
|
38
|
-
<Vertical />
|
|
39
|
-
</Variant>
|
|
40
|
-
</Story>
|
|
41
|
-
</template>
|
|
42
|
-
|
|
43
|
-
<style scoped>
|
|
44
|
-
|
|
45
|
-
</style>
|
package/docs/sliderDemo.vue
DELETED
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { CSSProperties } from 'vue'
|
|
3
|
-
import Slider from '@v-c/slider'
|
|
4
|
-
import { ref } from 'vue'
|
|
5
|
-
import TooltipSlider from './TooltipSlider'
|
|
6
|
-
|
|
7
|
-
const style: CSSProperties = {
|
|
8
|
-
width: '600px',
|
|
9
|
-
margin: '50px',
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function log(value: unknown) {
|
|
13
|
-
console.log(value) //eslint-disable-line
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function percentFormatter(v: unknown) {
|
|
17
|
-
return `${v} %`
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// NullableSlider组件
|
|
21
|
-
const nullableSliderValue = ref(null)
|
|
22
|
-
|
|
23
|
-
function onNullableSliderChange(newValue: any) {
|
|
24
|
-
log(newValue)
|
|
25
|
-
nullableSliderValue.value = newValue
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function onNullableSliderAfterChange(newValue: unknown) {
|
|
29
|
-
console.log(newValue) //eslint-disable-line
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function resetNullableSlider() {
|
|
33
|
-
console.log('reset value')
|
|
34
|
-
nullableSliderValue.value = null
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// NullableRangeSlider组件
|
|
38
|
-
const nullableRangeValue = ref(null)
|
|
39
|
-
|
|
40
|
-
function setNullableRangeValue(newValue: any) {
|
|
41
|
-
nullableRangeValue.value = newValue
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function resetNullableRange() {
|
|
45
|
-
nullableRangeValue.value = null
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// CustomizedSlider组件
|
|
49
|
-
const customizedValue = ref(50)
|
|
50
|
-
|
|
51
|
-
function onCustomizedSliderChange(newValue: any) {
|
|
52
|
-
log(newValue)
|
|
53
|
-
customizedValue.value = newValue
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function onCustomizedSliderAfterChange(newValue: unknown) {
|
|
57
|
-
console.log(newValue) //eslint-disable-line
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// DynamicBounds组件
|
|
61
|
-
const dynamicMin = ref(1)
|
|
62
|
-
const dynamicMax = ref(100)
|
|
63
|
-
const dynamicStep = ref(10)
|
|
64
|
-
const dynamicValue = ref(1)
|
|
65
|
-
|
|
66
|
-
function onDynamicSliderChange(newValue: any) {
|
|
67
|
-
log(newValue)
|
|
68
|
-
dynamicValue.value = newValue
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function onDynamicMinChange(e: any) {
|
|
72
|
-
dynamicMin.value = +e.target.value || 0
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function onDynamicMaxChange(e: any) {
|
|
76
|
-
dynamicMax.value = +e.target.value || 100
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function onDynamicStepChange(e: any) {
|
|
80
|
-
dynamicStep.value = +e.target.value || 1
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// 新增的data refs用于替换default-value
|
|
84
|
-
const data1 = ref(50)
|
|
85
|
-
const data2 = ref(100)
|
|
86
|
-
const data3 = ref(100)
|
|
87
|
-
const data4 = ref(30)
|
|
88
|
-
|
|
89
|
-
const data5 = ref(50)
|
|
90
|
-
const data6 = ref(30)
|
|
91
|
-
const data7 = ref(30)
|
|
92
|
-
const data8 = ref(30)
|
|
93
|
-
const data9 = ref(50)
|
|
94
|
-
const data10 = ref(null)
|
|
95
|
-
const data11 = ref(null)
|
|
96
|
-
const data12 = ref(20)
|
|
97
|
-
const data13 = ref(0)
|
|
98
|
-
|
|
99
|
-
const labelStyle = { minWidth: '60px', display: 'inline-block' }
|
|
100
|
-
const inputStyle = { marginBottom: '10px' }
|
|
101
|
-
</script>
|
|
102
|
-
|
|
103
|
-
<template>
|
|
104
|
-
<div>
|
|
105
|
-
<div :style="style">
|
|
106
|
-
<p>Basic Slider</p>
|
|
107
|
-
<Slider v-model:value="data5" @change="log" />
|
|
108
|
-
</div>
|
|
109
|
-
<div :style="style">
|
|
110
|
-
<p>Basic Slider, `startPoint=50`</p>
|
|
111
|
-
<Slider v-model:value="data9" :start-point="50" @change="log" />
|
|
112
|
-
</div>
|
|
113
|
-
<div :style="style">
|
|
114
|
-
<p>Slider reverse</p>
|
|
115
|
-
<Slider v-model:value="data13" reverse :min="20" :max="60" @change="log" />
|
|
116
|
-
</div>
|
|
117
|
-
<div :style="style">
|
|
118
|
-
<p>Basic Slider,`step=20`</p>
|
|
119
|
-
<Slider v-model:value="data1" :step="20" @before-change="log" />
|
|
120
|
-
</div>
|
|
121
|
-
<div :style="style">
|
|
122
|
-
<p>Basic Slider,`step=20, dots`</p>
|
|
123
|
-
<Slider v-model:value="data2" dots :step="20" @change-complete="log" />
|
|
124
|
-
</div>
|
|
125
|
-
<div :style="style">
|
|
126
|
-
<p>
|
|
127
|
-
Basic Slider,`step=20, dots, dotStyle={"borderColor: 'orange'"}, activeDotStyle= {"borderColor: 'yellow'"}`
|
|
128
|
-
</p>
|
|
129
|
-
/>
|
|
130
|
-
<Slider
|
|
131
|
-
v-model:value="data3"
|
|
132
|
-
dots
|
|
133
|
-
:step="20"
|
|
134
|
-
:dot-style="{ borderColor: 'orange' }"
|
|
135
|
-
:active-dot-style="{ borderColor: 'yellow' }"
|
|
136
|
-
@change-complete="log"
|
|
137
|
-
/>
|
|
138
|
-
</div>
|
|
139
|
-
<div :style="style">
|
|
140
|
-
<p>Slider with tooltip, with custom `tipFormatter`</p>
|
|
141
|
-
<TooltipSlider
|
|
142
|
-
:tip-formatter="percentFormatter"
|
|
143
|
-
:tip-props="{ overlayClassName: 'foo' }"
|
|
144
|
-
@change="log"
|
|
145
|
-
/>
|
|
146
|
-
</div>
|
|
147
|
-
<div :style="style">
|
|
148
|
-
<p>
|
|
149
|
-
Slider with custom handle and track style.<strong>(old api, will be deprecated)</strong>
|
|
150
|
-
</p>
|
|
151
|
-
<Slider
|
|
152
|
-
v-model:value="data4"
|
|
153
|
-
:rail-style="{ backgroundColor: 'red', height: 10 }"
|
|
154
|
-
:track-style="{ backgroundColor: 'blue', height: 10 }"
|
|
155
|
-
:handle-style="{
|
|
156
|
-
borderColor: 'blue',
|
|
157
|
-
height: 28,
|
|
158
|
-
width: 28,
|
|
159
|
-
marginLeft: -14,
|
|
160
|
-
marginTop: -9,
|
|
161
|
-
backgroundColor: 'black',
|
|
162
|
-
}"
|
|
163
|
-
/>
|
|
164
|
-
</div>
|
|
165
|
-
<div :style="style">
|
|
166
|
-
<p>
|
|
167
|
-
Slider with custom handle and track style.<strong>(The recommended new api)</strong>
|
|
168
|
-
</p>
|
|
169
|
-
<Slider
|
|
170
|
-
v-model:value="data6"
|
|
171
|
-
:track-style="{ backgroundColor: 'blue', height: 10 }"
|
|
172
|
-
:handle-style="{
|
|
173
|
-
borderColor: 'blue',
|
|
174
|
-
height: 28,
|
|
175
|
-
width: 28,
|
|
176
|
-
marginLeft: -14,
|
|
177
|
-
marginTop: -9,
|
|
178
|
-
backgroundColor: 'black',
|
|
179
|
-
}"
|
|
180
|
-
:rail-style="{ backgroundColor: 'red', height: 10 }"
|
|
181
|
-
/>
|
|
182
|
-
</div>
|
|
183
|
-
<div :style="style">
|
|
184
|
-
<p>
|
|
185
|
-
Reversed Slider with custom handle and track style.
|
|
186
|
-
<strong>(The recommended new api)</strong>
|
|
187
|
-
</p>
|
|
188
|
-
<Slider
|
|
189
|
-
v-model:value="data4"
|
|
190
|
-
:track-style="{ backgroundColor: 'blue', height: 10 }"
|
|
191
|
-
reverse
|
|
192
|
-
:handle-style="{
|
|
193
|
-
borderColor: 'blue',
|
|
194
|
-
height: 28,
|
|
195
|
-
width: 28,
|
|
196
|
-
marginLeft: -14,
|
|
197
|
-
marginTop: -9,
|
|
198
|
-
backgroundColor: 'black',
|
|
199
|
-
}"
|
|
200
|
-
:rail-style="{ backgroundColor: 'red', height: 10 }"
|
|
201
|
-
/>
|
|
202
|
-
</div>
|
|
203
|
-
<div :style="style">
|
|
204
|
-
<p>Basic Slider, disabled</p>
|
|
205
|
-
<Slider v-model:value="data12" disabled @change="log" />
|
|
206
|
-
</div>
|
|
207
|
-
<div :style="style">
|
|
208
|
-
<p>Controlled Slider</p>
|
|
209
|
-
<Slider v-model:value="data5" />
|
|
210
|
-
</div>
|
|
211
|
-
<div :style="style">
|
|
212
|
-
<p>Customized Slider</p>
|
|
213
|
-
<Slider
|
|
214
|
-
v-model:value="customizedValue"
|
|
215
|
-
@change="onCustomizedSliderChange"
|
|
216
|
-
@change-complete="onCustomizedSliderAfterChange"
|
|
217
|
-
/>
|
|
218
|
-
</div>
|
|
219
|
-
<div :style="style">
|
|
220
|
-
<p>Slider with null value and reset button</p>
|
|
221
|
-
<div>
|
|
222
|
-
<Slider
|
|
223
|
-
v-model:value="nullableSliderValue"
|
|
224
|
-
@change="onNullableSliderChange"
|
|
225
|
-
@change-complete="onNullableSliderAfterChange"
|
|
226
|
-
/>
|
|
227
|
-
<button type="button" @click="resetNullableSlider">
|
|
228
|
-
Reset
|
|
229
|
-
</button>
|
|
230
|
-
</div>
|
|
231
|
-
</div>
|
|
232
|
-
<div :style="style">
|
|
233
|
-
<p>Range Slider with null value and reset button</p>
|
|
234
|
-
<div>
|
|
235
|
-
<Slider v-model:value="nullableRangeValue" range @change="setNullableRangeValue" />
|
|
236
|
-
<button type="button" @click="resetNullableRange">
|
|
237
|
-
Reset
|
|
238
|
-
</button>
|
|
239
|
-
</div>
|
|
240
|
-
</div>
|
|
241
|
-
<div :style="style">
|
|
242
|
-
<p>Slider with dynamic `min` `max` `step`</p>
|
|
243
|
-
<div>
|
|
244
|
-
<label :style="labelStyle">Min: </label>
|
|
245
|
-
<input
|
|
246
|
-
type="number"
|
|
247
|
-
:value="dynamicMin"
|
|
248
|
-
:style="inputStyle"
|
|
249
|
-
@input="onDynamicMinChange"
|
|
250
|
-
>
|
|
251
|
-
<br>
|
|
252
|
-
<label :style="labelStyle">Max: </label>
|
|
253
|
-
<input
|
|
254
|
-
type="number"
|
|
255
|
-
:value="dynamicMax"
|
|
256
|
-
:style="inputStyle"
|
|
257
|
-
@input="onDynamicMaxChange"
|
|
258
|
-
>
|
|
259
|
-
<br>
|
|
260
|
-
<label :style="labelStyle">Step: </label>
|
|
261
|
-
<input
|
|
262
|
-
type="number"
|
|
263
|
-
:value="dynamicStep"
|
|
264
|
-
:style="inputStyle"
|
|
265
|
-
@input="onDynamicStepChange"
|
|
266
|
-
>
|
|
267
|
-
<br>
|
|
268
|
-
<br>
|
|
269
|
-
<label :style="labelStyle">Value: </label>
|
|
270
|
-
<span>{{ dynamicValue }}</span>
|
|
271
|
-
<br>
|
|
272
|
-
<br>
|
|
273
|
-
<Slider
|
|
274
|
-
v-model:value="dynamicValue"
|
|
275
|
-
:min="dynamicMin"
|
|
276
|
-
:max="dynamicMax"
|
|
277
|
-
:step="dynamicStep"
|
|
278
|
-
@change="onDynamicSliderChange"
|
|
279
|
-
/>
|
|
280
|
-
</div>
|
|
281
|
-
</div>
|
|
282
|
-
</div>
|
|
283
|
-
</template>
|
package/docs/vertical.vue
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { CSSProperties } from 'vue'
|
|
3
|
-
import Slider from '@v-c/slider'
|
|
4
|
-
import { ref } from 'vue'
|
|
5
|
-
|
|
6
|
-
const style: CSSProperties = {
|
|
7
|
-
float: 'left',
|
|
8
|
-
width: '160px',
|
|
9
|
-
height: '400px',
|
|
10
|
-
marginBottom: '160px',
|
|
11
|
-
marginLeft: '50px',
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const parentStyle: CSSProperties = {
|
|
15
|
-
overflow: 'hidden',
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const marks = {
|
|
19
|
-
'-10': '-10°C',
|
|
20
|
-
'0': '0°C',
|
|
21
|
-
'26': '26°C',
|
|
22
|
-
'37': '37°C',
|
|
23
|
-
'50': '50°C',
|
|
24
|
-
'100': {
|
|
25
|
-
style: {
|
|
26
|
-
color: 'red',
|
|
27
|
-
},
|
|
28
|
-
label: '100°C',
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// 创建响应式数据
|
|
33
|
-
const data1 = ref(20)
|
|
34
|
-
const data2 = ref(20)
|
|
35
|
-
const data3 = ref(20)
|
|
36
|
-
const data4 = ref(20)
|
|
37
|
-
const data5 = ref(20)
|
|
38
|
-
const data6 = ref(20)
|
|
39
|
-
const data7 = ref([20, 40])
|
|
40
|
-
const data8 = ref([20, 40])
|
|
41
|
-
const data9 = ref([20, 40])
|
|
42
|
-
const data10 = ref([20, 40])
|
|
43
|
-
|
|
44
|
-
function log(value: unknown) {
|
|
45
|
-
console.log(value)
|
|
46
|
-
}
|
|
47
|
-
</script>
|
|
48
|
-
|
|
49
|
-
<template>
|
|
50
|
-
<div :style="parentStyle">
|
|
51
|
-
<div :style="style">
|
|
52
|
-
<p>Slider with marks, `step=null`</p>
|
|
53
|
-
<Slider v-model:value="data1" vertical :min="-10" :marks="marks" :step="null" @change="log" />
|
|
54
|
-
</div>
|
|
55
|
-
<div :style="style">
|
|
56
|
-
<p>Slider with marks, `step=null` and `startPoint=0`</p>
|
|
57
|
-
<Slider
|
|
58
|
-
v-model:value="data2"
|
|
59
|
-
vertical
|
|
60
|
-
:min="-10"
|
|
61
|
-
:start-point="0"
|
|
62
|
-
:marks="marks"
|
|
63
|
-
:step="null"
|
|
64
|
-
@change="log"
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
<div :style="style">
|
|
68
|
-
<p>Reverse Slider with marks, `step=null`</p>
|
|
69
|
-
<Slider
|
|
70
|
-
v-model:value="data3"
|
|
71
|
-
vertical
|
|
72
|
-
:min="-10"
|
|
73
|
-
:marks="marks"
|
|
74
|
-
:step="null"
|
|
75
|
-
reverse
|
|
76
|
-
@change="log"
|
|
77
|
-
/>
|
|
78
|
-
</div>
|
|
79
|
-
<div :style="style">
|
|
80
|
-
<p>Slider with marks and steps</p>
|
|
81
|
-
<Slider v-model:value="data4" vertical dots :min="-10" :marks="marks" :step="10" @change="log" />
|
|
82
|
-
</div>
|
|
83
|
-
<div :style="style">
|
|
84
|
-
<p>Slider with marks, `included=false`</p>
|
|
85
|
-
<Slider v-model:value="data5" vertical :min="-10" :marks="marks" :included="false" />
|
|
86
|
-
</div>
|
|
87
|
-
<div :style="style">
|
|
88
|
-
<p>Slider with marks and steps, `included=false`</p>
|
|
89
|
-
<Slider v-model:value="data6" vertical :min="-10" :marks="marks" :step="10" :included="false" />
|
|
90
|
-
</div>
|
|
91
|
-
<div :style="style">
|
|
92
|
-
<p>Range with marks</p>
|
|
93
|
-
<Slider v-model:value="data7" range vertical :min="-10" :marks="marks" @change="log" />
|
|
94
|
-
</div>
|
|
95
|
-
<div :style="style">
|
|
96
|
-
<p>Range with marks and steps</p>
|
|
97
|
-
<Slider
|
|
98
|
-
v-model:value="data8"
|
|
99
|
-
range
|
|
100
|
-
vertical
|
|
101
|
-
:min="-10"
|
|
102
|
-
:marks="marks"
|
|
103
|
-
:step="10"
|
|
104
|
-
@change="log"
|
|
105
|
-
/>
|
|
106
|
-
</div>
|
|
107
|
-
<div :style="style">
|
|
108
|
-
<p>Range with marks and draggableTrack</p>
|
|
109
|
-
<Slider
|
|
110
|
-
v-model:value="data9"
|
|
111
|
-
:range="{ draggableTrack: true }"
|
|
112
|
-
vertical
|
|
113
|
-
:min="-10"
|
|
114
|
-
:marks="marks"
|
|
115
|
-
@change="log"
|
|
116
|
-
/>
|
|
117
|
-
</div>
|
|
118
|
-
<div :style="style">
|
|
119
|
-
<p>Range with marks and draggableTrack(reverse)</p>
|
|
120
|
-
<Slider
|
|
121
|
-
v-model:value="data10"
|
|
122
|
-
:range="{ draggableTrack: true }"
|
|
123
|
-
vertical
|
|
124
|
-
reverse
|
|
125
|
-
:min="-10"
|
|
126
|
-
:marks="marks"
|
|
127
|
-
@change="log"
|
|
128
|
-
/>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</template>
|
|
132
|
-
|
|
133
|
-
<style scoped>
|
|
134
|
-
|
|
135
|
-
</style>
|