@v-c/slider 1.0.2 → 1.0.4

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