@v-c/slider 1.0.1 → 1.0.3

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/docs/vertical.vue CHANGED
@@ -1,6 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { CSSProperties } from 'vue'
3
3
  import Slider from '@v-c/slider'
4
+ import { ref } from 'vue'
4
5
 
5
6
  const style: CSSProperties = {
6
7
  float: 'left',
@@ -28,8 +29,20 @@ const marks = {
28
29
  },
29
30
  }
30
31
 
31
- function log(value) {
32
- console.log(value); //eslint-disable-line
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)
33
46
  }
34
47
  </script>
35
48
 
@@ -37,80 +50,80 @@ function log(value) {
37
50
  <div :style="parentStyle">
38
51
  <div :style="style">
39
52
  <p>Slider with marks, `step=null`</p>
40
- <Slider vertical :min="-10" :marks="marks" :step="null" :default-value="20" @change="log" />
53
+ <Slider v-model:value="data1" vertical :min="-10" :marks="marks" :step="null" @change="log" />
41
54
  </div>
42
55
  <div :style="style">
43
56
  <p>Slider with marks, `step=null` and `startPoint=0`</p>
44
57
  <Slider
58
+ v-model:value="data2"
45
59
  vertical
46
60
  :min="-10"
47
61
  :start-point="0"
48
62
  :marks="marks"
49
63
  :step="null"
50
- :default-value="20"
51
64
  @change="log"
52
65
  />
53
66
  </div>
54
67
  <div :style="style">
55
68
  <p>Reverse Slider with marks, `step=null`</p>
56
69
  <Slider
70
+ v-model:value="data3"
57
71
  vertical
58
72
  :min="-10"
59
73
  :marks="marks"
60
74
  :step="null"
61
- :default-value="20"
62
75
  reverse
63
76
  @change="log"
64
77
  />
65
78
  </div>
66
79
  <div :style="style">
67
80
  <p>Slider with marks and steps</p>
68
- <Slider vertical dots :min="-10" :marks="marks" :step="10" :default-value="20" @change="log" />
81
+ <Slider v-model:value="data4" vertical dots :min="-10" :marks="marks" :step="10" @change="log" />
69
82
  </div>
70
83
  <div :style="style">
71
84
  <p>Slider with marks, `included=false`</p>
72
- <Slider vertical :min="-10" :marks="marks" :included="false" :default-value="20" />
85
+ <Slider v-model:value="data5" vertical :min="-10" :marks="marks" :included="false" />
73
86
  </div>
74
87
  <div :style="style">
75
88
  <p>Slider with marks and steps, `included=false`</p>
76
- <Slider vertical :min="-10" :marks="marks" :step="10" :included="false" :default-value="20" />
89
+ <Slider v-model:value="data6" vertical :min="-10" :marks="marks" :step="10" :included="false" />
77
90
  </div>
78
91
  <div :style="style">
79
92
  <p>Range with marks</p>
80
- <Slider range vertical :min="-10" :marks="marks" :default-value="[20, 40]" @change="log" />
93
+ <Slider v-model:value="data7" range vertical :min="-10" :marks="marks" @change="log" />
81
94
  </div>
82
95
  <div :style="style">
83
96
  <p>Range with marks and steps</p>
84
97
  <Slider
98
+ v-model:value="data8"
85
99
  range
86
100
  vertical
87
101
  :min="-10"
88
102
  :marks="marks"
89
103
  :step="10"
90
- :default-value="[20, 40]"
91
104
  @change="log"
92
105
  />
93
106
  </div>
94
107
  <div :style="style">
95
108
  <p>Range with marks and draggableTrack</p>
96
109
  <Slider
110
+ v-model:value="data9"
97
111
  :range="{ draggableTrack: true }"
98
112
  vertical
99
113
  :min="-10"
100
114
  :marks="marks"
101
- :default-value="[20, 40]"
102
115
  @change="log"
103
116
  />
104
117
  </div>
105
118
  <div :style="style">
106
119
  <p>Range with marks and draggableTrack(reverse)</p>
107
120
  <Slider
121
+ v-model:value="data10"
108
122
  :range="{ draggableTrack: true }"
109
123
  vertical
110
124
  reverse
111
125
  :min="-10"
112
126
  :marks="marks"
113
- :default-value="[20, 40]"
114
127
  @change="log"
115
128
  />
116
129
  </div>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@v-c/slider",
3
3
  "type": "module",
4
- "version": "1.0.1",
4
+ "version": "1.0.3",
5
5
  "description": "",
6
6
  "exports": {
7
7
  ".": {
@@ -6,6 +6,15 @@ import { defineComponent, ref } from 'vue'
6
6
  import { useInjectSlider } from '../context'
7
7
  import { getDirectionStyle, getIndex } from '../util'
8
8
 
9
+ export interface RenderProps {
10
+ index: number
11
+ prefixCls: string
12
+ value: number
13
+ dragging: boolean
14
+ draggingDelete: boolean
15
+ node: any
16
+ }
17
+
9
18
  export default defineComponent({
10
19
  name: 'Handle',
11
20
  props: {
@@ -19,7 +28,7 @@ export default defineComponent({
19
28
  onOffsetChange: { type: Function as PropType<(value: number | 'min' | 'max', valueIndex: number) => void>, required: true },
20
29
  onFocus: { type: Function as PropType<(e: FocusEvent, index: number) => void>, required: true },
21
30
  onMouseenter: { type: Function as PropType<(e: MouseEvent, index: number) => void>, required: true },
22
- render: Function,
31
+ render: { type: Function as PropType<(v: RenderProps) => any> },
23
32
  onChangeComplete: Function as PropType<() => void>,
24
33
  mock: Boolean,
25
34
  classNames: Object as PropType<SliderClassNames>,
@@ -47,19 +56,16 @@ export default defineComponent({
47
56
 
48
57
  // ============================ Events ============================
49
58
  const onInternalStartMove = (e: MouseEvent | TouchEvent) => {
50
- console.log('emit-start')
51
59
  if (!disabled) {
52
60
  emit('startMove', e, props.valueIndex)
53
61
  }
54
62
  }
55
63
 
56
64
  const onInternalFocus = (e: FocusEvent) => {
57
- console.log('emit-focus')
58
65
  emit('focus', e, props.valueIndex)
59
66
  }
60
67
 
61
68
  const onInternalMouseEnter = (e: MouseEvent) => {
62
- console.log('emit-enter')
63
69
  emit('mouseenter', e, props.valueIndex)
64
70
  }
65
71
 
@@ -216,7 +222,7 @@ export default defineComponent({
216
222
  draggingDelete,
217
223
  node: handleNode,
218
224
  }
219
- console.log('render', renderProps)
225
+
220
226
  const RenderNode = () => render(renderProps)
221
227
  return <RenderNode />
222
228
  }
@@ -4,6 +4,14 @@ import { defineComponent, ref } from 'vue'
4
4
  import { getIndex } from '../util'
5
5
  import Handle from './Handle'
6
6
 
7
+ export interface RenderProps {
8
+ index: number
9
+ prefixCls: string
10
+ value: number
11
+ dragging: boolean
12
+ draggingDelete: boolean
13
+ node: any
14
+ }
7
15
  export interface HandlesRef {
8
16
  focus: (index: number) => void
9
17
  hideHelp: VoidFunction
@@ -20,8 +28,8 @@ export default defineComponent({
20
28
  onFocus: { type: Function as PropType<(e: FocusEvent) => void> },
21
29
  onBlur: { type: Function as PropType<(e: FocusEvent) => void> },
22
30
  onDelete: { type: Function as PropType<(index: number) => void>, required: true },
23
- handleRender: Function,
24
- activeHandleRender: Function,
31
+ handleRender: { type: Function as PropType<(props: RenderProps) => any> },
32
+ activeHandleRender: { type: Function as PropType<(props: RenderProps) => any> },
25
33
  draggingIndex: { type: Number, default: -1 },
26
34
  draggingDelete: { type: Boolean, default: false },
27
35
  onChangeComplete: Function as PropType<() => void>,
@@ -16,7 +16,7 @@ export interface MarksProps {
16
16
  onClick?: (value: number) => void
17
17
  }
18
18
 
19
- const Marks: FunctionalComponent<MarksProps> = (props, { emit }) => {
19
+ const Marks: FunctionalComponent<MarksProps> = (props, { emit, slots }) => {
20
20
  const { prefixCls, marks = [] } = props
21
21
 
22
22
  const markPrefixCls = `${prefixCls}-mark`
@@ -30,7 +30,7 @@ const Marks: FunctionalComponent<MarksProps> = (props, { emit }) => {
30
30
  <div class={markPrefixCls}>
31
31
  {marks.map(({ value, style, label }) => (
32
32
  <Mark key={value} prefixCls={markPrefixCls} style={style} value={value} onClick={() => emit('click', value)}>
33
- {label}
33
+ {slots.mark?.({ point: value, label }) || label}
34
34
  </Mark>
35
35
  ))}
36
36
  </div>