@v-c/slider 1.0.0 → 1.0.2
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 +1 -1
- package/dist/Handles/Handle.js +50 -50
- package/dist/Marks/index.cjs +1 -1
- package/dist/Marks/index.js +23 -22
- package/dist/Slider.cjs +1 -1
- package/dist/Slider.d.ts +39 -12
- package/dist/Slider.js +118 -108
- package/dist/hooks/useDrag.cjs +1 -1
- package/dist/hooks/useDrag.js +39 -39
- package/docs/marks.vue +10 -1
- package/package.json +1 -1
- package/src/Handles/Handle.tsx +1 -4
- package/src/Marks/index.tsx +2 -2
- package/src/Slider.tsx +593 -582
- package/src/hooks/useDrag.ts +0 -1
package/dist/Handles/Handle.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),e=require("@v-c/util/dist/KeyCode"),B=require("classnames"),L=require("../context.cjs"),s=require("../util.cjs"),U=o.defineComponent({name:"Handle",props:{prefixCls:{type:String,required:!0},value:{type:Number,required:!0},valueIndex:{type:Number,required:!0},dragging:{type:Boolean,default:!1},draggingDelete:{type:Boolean,default:!1},onStartMove:{type:Function,required:!0},onDelete:{type:Function,required:!0},onOffsetChange:{type:Function,required:!0},onFocus:{type:Function,required:!0},onMouseenter:{type:Function,required:!0},render:Function,onChangeComplete:Function,mock:Boolean,classNames:Object,styles:Object},emits:["focus","mouseenter","startMove","delete","offsetChange","changeComplete"],setup(
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),e=require("@v-c/util/dist/KeyCode"),B=require("classnames"),L=require("../context.cjs"),s=require("../util.cjs"),U=o.defineComponent({name:"Handle",props:{prefixCls:{type:String,required:!0},value:{type:Number,required:!0},valueIndex:{type:Number,required:!0},dragging:{type:Boolean,default:!1},draggingDelete:{type:Boolean,default:!1},onStartMove:{type:Function,required:!0},onDelete:{type:Function,required:!0},onOffsetChange:{type:Function,required:!0},onFocus:{type:Function,required:!0},onMouseenter:{type:Function,required:!0},render:Function,onChangeComplete:Function,mock:Boolean,classNames:Object,styles:Object},emits:["focus","mouseenter","startMove","delete","offsetChange","changeComplete"],setup(l,{attrs:p,emit:u,expose:F}){const{min:v,max:g,direction:t,disabled:d,keyboard:q,range:E,tabIndex:P,ariaLabelForHandle:k,ariaLabelledByForHandle:D,ariaRequired:M,ariaValueTextFormatterForHandle:N}=L.useInjectSlider(),c=o.ref({}),f=o.ref({}),b=o.ref({}),y=a=>{d||u("startMove",a,l.valueIndex)},O=a=>{u("focus",a,l.valueIndex)},S=a=>{u("mouseenter",a,l.valueIndex)},H=a=>{if(!d&&q){let n=null;switch(a.which||a.keyCode){case e.LEFT:n=t.value==="ltr"||t.value==="btt"?-1:1;break;case e.RIGHT:n=t.value==="ltr"||t.value==="btt"?1:-1;break;case e.UP:n=t.value!=="ttb"?1:-1;break;case e.DOWN:n=t.value!=="ttb"?-1:1;break;case e.HOME:n="min";break;case e.END:n="max";break;case e.PAGE_UP:n=2;break;case e.PAGE_DOWN:n=-2;break;case e.BACKSPACE:case e.DELETE:u("delete",a,l.valueIndex);break}n!==null&&(a.preventDefault(),u("offsetChange",n,l.valueIndex))}},w=a=>{switch(a.which||a.keyCode){case e.LEFT:case e.RIGHT:case e.UP:case e.DOWN:case e.HOME:case e.END:case e.PAGE_UP:case e.PAGE_DOWN:u("changeComplete");break}};return F({focus:()=>l.valueIndex}),()=>{const{prefixCls:a,value:n,valueIndex:r,onStartMove:$,onDelete:j,render:x,dragging:h,draggingDelete:C,onOffsetChange:R,onChangeComplete:W,onFocus:V,onMouseenter:z,styles:T,classNames:A,...I}=l,G=s.getDirectionStyle(t.value,n,v.value,g.value);r!==null?c.value={tabindex:d?null:s.getIndex(P,r),role:"slider","aria-valuemin":v.value,"aria-valuemax":g.value,"aria-valuenow":n,"aria-disabled":d,"aria-label":s.getIndex(k,r),"aria-labelledby":s.getIndex(D,r),"aria-required":s.getIndex(M,r),"aria-valuetext":s.getIndex(N,r)?.(n),"aria-orientation":t.value==="ltr"||t.value==="rtl"?"horizontal":"vertical",onMousedown:y,onTouchstart:y,onFocus:O,onMouseenter:S,onKeydown:H,onKeyup:w,...I}:c.value={...I};const i=`${a}-handle`;f.value=B(i,{[`${i}-${r+1}`]:r!==null&&E,[`${i}-dragging`]:h,[`${i}-dragging-delete`]:C},A?.handle),b.value={...G,...p.style,...T?.handle};const m=o.createVNode("div",o.mergeProps({class:f.value,style:b.value},c.value),null);if(x){const K={index:r,prefixCls:a,value:n,dragging:h,draggingDelete:C,node:m},_=()=>x(K);return o.createVNode(_,null,null)}return m}}});exports.default=U;
|
package/dist/Handles/Handle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as L, ref as c, createVNode as
|
|
1
|
+
import { defineComponent as L, ref as c, createVNode as F, mergeProps as R } from "vue";
|
|
2
2
|
import e from "@v-c/util/dist/KeyCode";
|
|
3
3
|
import U from "classnames";
|
|
4
4
|
import { useInjectSlider as $ } from "../context.js";
|
|
@@ -53,31 +53,31 @@ const te = /* @__PURE__ */ L({
|
|
|
53
53
|
styles: Object
|
|
54
54
|
},
|
|
55
55
|
emits: ["focus", "mouseenter", "startMove", "delete", "offsetChange", "changeComplete"],
|
|
56
|
-
setup(
|
|
57
|
-
attrs:
|
|
58
|
-
emit:
|
|
59
|
-
expose:
|
|
56
|
+
setup(l, {
|
|
57
|
+
attrs: I,
|
|
58
|
+
emit: o,
|
|
59
|
+
expose: E
|
|
60
60
|
}) {
|
|
61
61
|
const {
|
|
62
62
|
min: v,
|
|
63
63
|
max: f,
|
|
64
64
|
direction: t,
|
|
65
65
|
disabled: s,
|
|
66
|
-
keyboard:
|
|
67
|
-
range:
|
|
68
|
-
tabIndex:
|
|
69
|
-
ariaLabelForHandle:
|
|
70
|
-
ariaLabelledByForHandle:
|
|
71
|
-
ariaRequired:
|
|
72
|
-
ariaValueTextFormatterForHandle:
|
|
73
|
-
} = $(), i = c({}), g = c({}),
|
|
74
|
-
|
|
66
|
+
keyboard: k,
|
|
67
|
+
range: D,
|
|
68
|
+
tabIndex: N,
|
|
69
|
+
ariaLabelForHandle: P,
|
|
70
|
+
ariaLabelledByForHandle: M,
|
|
71
|
+
ariaRequired: q,
|
|
72
|
+
ariaValueTextFormatterForHandle: O
|
|
73
|
+
} = $(), i = c({}), g = c({}), b = c({}), m = (a) => {
|
|
74
|
+
s || o("startMove", a, l.valueIndex);
|
|
75
|
+
}, H = (a) => {
|
|
76
|
+
o("focus", a, l.valueIndex);
|
|
75
77
|
}, S = (a) => {
|
|
76
|
-
|
|
78
|
+
o("mouseenter", a, l.valueIndex);
|
|
77
79
|
}, w = (a) => {
|
|
78
|
-
|
|
79
|
-
}, T = (a) => {
|
|
80
|
-
if (!s && D) {
|
|
80
|
+
if (!s && k) {
|
|
81
81
|
let n = null;
|
|
82
82
|
switch (a.which || a.keyCode) {
|
|
83
83
|
case e.LEFT:
|
|
@@ -108,12 +108,12 @@ const te = /* @__PURE__ */ L({
|
|
|
108
108
|
break;
|
|
109
109
|
case e.BACKSPACE:
|
|
110
110
|
case e.DELETE:
|
|
111
|
-
|
|
111
|
+
o("delete", a, l.valueIndex);
|
|
112
112
|
break;
|
|
113
113
|
}
|
|
114
|
-
n !== null && (a.preventDefault(),
|
|
114
|
+
n !== null && (a.preventDefault(), o("offsetChange", n, l.valueIndex));
|
|
115
115
|
}
|
|
116
|
-
},
|
|
116
|
+
}, T = (a) => {
|
|
117
117
|
switch (a.which || a.keyCode) {
|
|
118
118
|
case e.LEFT:
|
|
119
119
|
case e.RIGHT:
|
|
@@ -123,17 +123,17 @@ const te = /* @__PURE__ */ L({
|
|
|
123
123
|
case e.END:
|
|
124
124
|
case e.PAGE_UP:
|
|
125
125
|
case e.PAGE_DOWN:
|
|
126
|
-
|
|
126
|
+
o("changeComplete");
|
|
127
127
|
break;
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
|
-
return
|
|
131
|
-
focus: () =>
|
|
130
|
+
return E({
|
|
131
|
+
focus: () => l.valueIndex
|
|
132
132
|
}), () => {
|
|
133
133
|
const {
|
|
134
134
|
prefixCls: a,
|
|
135
135
|
value: n,
|
|
136
|
-
valueIndex:
|
|
136
|
+
valueIndex: r,
|
|
137
137
|
onStartMove: _,
|
|
138
138
|
onDelete: j,
|
|
139
139
|
render: y,
|
|
@@ -143,56 +143,56 @@ const te = /* @__PURE__ */ L({
|
|
|
143
143
|
onChangeComplete: z,
|
|
144
144
|
onFocus: J,
|
|
145
145
|
onMouseenter: Q,
|
|
146
|
-
styles:
|
|
147
|
-
classNames:
|
|
146
|
+
styles: A,
|
|
147
|
+
classNames: G,
|
|
148
148
|
...x
|
|
149
|
-
} =
|
|
150
|
-
|
|
151
|
-
tabindex: s ? null : u(
|
|
149
|
+
} = l, K = W(t.value, n, v.value, f.value);
|
|
150
|
+
r !== null ? i.value = {
|
|
151
|
+
tabindex: s ? null : u(N, r),
|
|
152
152
|
role: "slider",
|
|
153
153
|
"aria-valuemin": v.value,
|
|
154
154
|
"aria-valuemax": f.value,
|
|
155
155
|
"aria-valuenow": n,
|
|
156
156
|
"aria-disabled": s,
|
|
157
|
-
"aria-label": u(
|
|
158
|
-
"aria-labelledby": u(
|
|
159
|
-
"aria-required": u(
|
|
160
|
-
"aria-valuetext": u(
|
|
157
|
+
"aria-label": u(P, r),
|
|
158
|
+
"aria-labelledby": u(M, r),
|
|
159
|
+
"aria-required": u(q, r),
|
|
160
|
+
"aria-valuetext": u(O, r)?.(n),
|
|
161
161
|
"aria-orientation": t.value === "ltr" || t.value === "rtl" ? "horizontal" : "vertical",
|
|
162
|
-
onMousedown:
|
|
163
|
-
onTouchstart:
|
|
164
|
-
onFocus:
|
|
165
|
-
onMouseenter:
|
|
166
|
-
onKeydown:
|
|
167
|
-
onKeyup:
|
|
162
|
+
onMousedown: m,
|
|
163
|
+
onTouchstart: m,
|
|
164
|
+
onFocus: H,
|
|
165
|
+
onMouseenter: S,
|
|
166
|
+
onKeydown: w,
|
|
167
|
+
onKeyup: T,
|
|
168
168
|
...x
|
|
169
169
|
} : i.value = {
|
|
170
170
|
...x
|
|
171
171
|
};
|
|
172
172
|
const d = `${a}-handle`;
|
|
173
173
|
g.value = U(d, {
|
|
174
|
-
[`${d}-${
|
|
174
|
+
[`${d}-${r + 1}`]: r !== null && D,
|
|
175
175
|
[`${d}-dragging`]: h,
|
|
176
176
|
[`${d}-dragging-delete`]: p
|
|
177
|
-
},
|
|
178
|
-
...
|
|
179
|
-
...
|
|
180
|
-
...
|
|
177
|
+
}, G?.handle), b.value = {
|
|
178
|
+
...K,
|
|
179
|
+
...I.style,
|
|
180
|
+
...A?.handle
|
|
181
181
|
};
|
|
182
|
-
const C =
|
|
182
|
+
const C = F("div", R({
|
|
183
183
|
class: g.value,
|
|
184
|
-
style:
|
|
184
|
+
style: b.value
|
|
185
185
|
}, i.value), null);
|
|
186
186
|
if (y) {
|
|
187
|
-
const
|
|
188
|
-
index:
|
|
187
|
+
const B = {
|
|
188
|
+
index: r,
|
|
189
189
|
prefixCls: a,
|
|
190
190
|
value: n,
|
|
191
191
|
dragging: h,
|
|
192
192
|
draggingDelete: p,
|
|
193
193
|
node: C
|
|
194
194
|
};
|
|
195
|
-
return
|
|
195
|
+
return F(() => y(B), null, null);
|
|
196
196
|
}
|
|
197
197
|
return C;
|
|
198
198
|
};
|
package/dist/Marks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),u=require("./Mark.cjs"),d=(l,{emit:o,slots:a})=>{const{prefixCls:c,marks:r=[]}=l,t=`${c}-mark`;return r.length?i.createVNode("div",{class:t},[r.map(({value:e,style:n,label:s})=>i.createVNode(u.default,{key:e,prefixCls:t,style:n,value:e,onClick:()=>o("click",e)},{default:()=>[a.mark?.({point:e,label:s})||s]}))]):null};exports.default=d;
|
package/dist/Marks/index.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import { createVNode as
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const u = (t, {
|
|
7
|
-
emit: n
|
|
1
|
+
import { createVNode as o } from "vue";
|
|
2
|
+
import c from "./Mark.js";
|
|
3
|
+
const p = (i, {
|
|
4
|
+
emit: a,
|
|
5
|
+
slots: k
|
|
8
6
|
}) => {
|
|
9
7
|
const {
|
|
10
|
-
prefixCls:
|
|
11
|
-
marks:
|
|
12
|
-
} =
|
|
13
|
-
return
|
|
14
|
-
class:
|
|
15
|
-
}, [
|
|
8
|
+
prefixCls: m,
|
|
9
|
+
marks: t = []
|
|
10
|
+
} = i, s = `${m}-mark`;
|
|
11
|
+
return t.length ? o("div", {
|
|
12
|
+
class: s
|
|
13
|
+
}, [t.map(({
|
|
16
14
|
value: r,
|
|
17
|
-
style:
|
|
18
|
-
label:
|
|
19
|
-
}) =>
|
|
15
|
+
style: n,
|
|
16
|
+
label: e
|
|
17
|
+
}) => o(c, {
|
|
20
18
|
key: r,
|
|
21
|
-
prefixCls:
|
|
22
|
-
style:
|
|
19
|
+
prefixCls: s,
|
|
20
|
+
style: n,
|
|
23
21
|
value: r,
|
|
24
|
-
onClick: () =>
|
|
25
|
-
},
|
|
26
|
-
default: () => [
|
|
22
|
+
onClick: () => a("click", r)
|
|
23
|
+
}, {
|
|
24
|
+
default: () => [k.mark?.({
|
|
25
|
+
point: r,
|
|
26
|
+
label: e
|
|
27
|
+
}) || e]
|
|
27
28
|
}))]) : null;
|
|
28
29
|
};
|
|
29
30
|
export {
|
|
30
|
-
|
|
31
|
+
p as default
|
|
31
32
|
};
|
package/dist/Slider.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),se=require("@v-c/util/dist/isEqual"),P=require("@v-c/util/dist/warning"),J=require("classnames"),ce=require("./context.cjs"),ie=require("./Handles/index.cjs"),de=require("./hooks/useDrag.cjs"),fe=require("./hooks/useOffset.cjs"),ve=require("./hooks/useRange.cjs"),ge=require("./Marks/index.cjs"),be=require("./Steps/index.cjs"),he=require("./Tracks/index.cjs");function me(){return{prefixCls:{type:String,default:"vc-slider"},className:String,classNames:Object,styles:Object,id:String,disabled:{type:Boolean,default:!1},keyboard:{type:Boolean,default:!0},autoFocus:Boolean,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},value:[Number,Array],defaultValue:[Number,Array],range:[Boolean,Object],count:Number,allowCross:{type:Boolean,default:!0},pushable:{type:[Boolean,Number],default:!1},reverse:Boolean,vertical:Boolean,included:{type:Boolean,default:!0},startPoint:Number,trackStyle:[Object,Array],handleStyle:[Object,Array],railStyle:Object,dotStyle:[Object,Function],activeDotStyle:[Object,Function],marks:Object,dots:Boolean,handleRender:Function,activeHandleRender:Function,track:{type:Boolean,default:!0},tabIndex:{type:[Number,Array],default:0},ariaLabelForHandle:[String,Array],ariaLabelledByForHandle:[String,Array],ariaRequired:Boolean,ariaValueTextFormatterForHandle:[Function,Array],onFocus:Function,onBlur:Function,onChange:Function,onBeforeChange:Function,onAfterChange:Function,onChangeComplete:Function}}const ye=a.defineComponent({name:"Slider",props:{...me()},emits:["focus","blur","change","beforeChange","afterChange","changeComplete"],slots:Object,setup(t,{attrs:$,emit:f,expose:K,slots:Q}){const y=a.ref(),R=a.ref(),k=a.shallowRef("ltr");a.watch([()=>t.reverse,()=>t.vertical],([e,l])=>{l?k.value=e?"ttb":"btt":k.value=e?"rtl":"ltr"},{immediate:!0});const b=a.shallowRef(0),S=a.shallowRef(100),E=a.shallowRef(1),p=a.ref([]),C=a.ref(t.defaultValue||t.value),u=a.ref([]),o=a.ref(),B=a.ref();a.watchEffect(()=>{const{range:e,min:l,max:n,step:s,pushable:i,marks:h,allowCross:x,value:v,count:g}=t,[c,F,H,j,I]=ve.default(e);o.value={rangeEnabled:c,rangeEditable:F,rangeDraggableTrack:H,minCount:j,maxCount:I},b.value=isFinite(l)?l:0,S.value=isFinite(n)?n:100,E.value=s!==null&&s<=0?1:s;const M=a.computed(()=>typeof i=="boolean"?i?E.value:!1:i>=0?i:!1);p.value=Object.keys(h||{}).map(m=>{const d=h?.[m],r={value:Number(m)};return d&&typeof d=="object"&&!a.isVNode(d)&&("label"in d||"style"in d)?(r.style=d.style,r.label=d.label):r.label=d,r}).filter(({label:m})=>m||typeof m=="number").sort((m,d)=>m.value-d.value);const[A,O]=fe.default(b.value,S.value,E.value,p.value,x,M.value);B.value={formatValue:A,offsetValues:O},v!==void 0&&(C.value=v);const oe=a.computed(()=>{const m=C.value===null||C.value===void 0?[]:Array.isArray(C.value)?C.value:[C.value],[d=b.value]=m;let r=C.value===null?[]:[d];if(c){if(r=[...m],g||C.value===void 0){const N=g>=0?g+1:2;for(r=r.slice(0,N);r.length<N;)r.push(r[r.length-1]??b.value)}r.sort((N,T)=>N-T)}return r.forEach((N,T)=>{r[T]=A(N)}),r});u.value=oe.value});const V=e=>o.value.rangeEnabled?e:e[0],q=e=>{const l=[...e].sort((n,s)=>n-s);se(l,u.value,!0)||f("change",V(l)),C.value=l},L=e=>{e&&y.value?.hideHelp();const l=V(u.value);t.onAfterChange&&(f("afterChange",l),P(!1,"[vc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.")),f("changeComplete",l)},U=e=>{if(t.disabled||!o.value.rangeEditable||u.value.length<=o.value.minCount)return;const l=[...u.value];l.splice(e,1),f("beforeChange",V(l)),q(l);const n=Math.max(0,e-1);y.value?.hideHelp(),y.value?.focus(n)},[_,W,Z,z,X]=de.default(R,k,u,b,S,B.value.formatValue,q,L,B.value.offsetValues,o.value.rangeEditable,o.value.minCount),Y=(e,l)=>{if(!t.disabled){const n=[...u.value];let s=0,i=0,h=S.value-b.value;u.value.forEach((g,c)=>{const F=Math.abs(e-g);F<=h&&(h=F,s=c),g<e&&(i=c)});let x=s;o.value.rangeEditable&&h!==0&&(!o.value.maxCount||u.value.length<o.value.maxCount)?(n.splice(i+1,0,e),x=i+1):n[s]=e,o.value.rangeEnabled&&!u.value.length&&t.count===void 0&&n.push(e);const v=V(n);f("beforeChange",v),q(n),l?(document.activeElement?.blur?.(),y.value?.focus(x),X(l,x,n)):(t.onAfterChange&&(f("afterChange",v),P(!1,"[vc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.")),f("changeComplete",v))}},ee=e=>{e.preventDefault();const{width:l,height:n,left:s,top:i,bottom:h,right:x}=R.value.getBoundingClientRect(),{clientX:v,clientY:g}=e;let c;switch(k.value){case"btt":c=(h-g)/n;break;case"ttb":c=(g-i)/n;break;case"rtl":c=(x-v)/l;break;default:c=(v-s)/l}const F=b.value+c*(S.value-b.value);Y(B.value.formatValue(F),e)},w=a.ref(null),ae=(e,l)=>{if(!t.disabled){const n=B.value.offsetValues(u.value,e,l);f("beforeChange",V(u.value)),q(n.values),w.value=n.value}};a.watchEffect(()=>{if(w.value!==null){const e=u.value.indexOf(w.value);e>=0&&y.value?.focus(e)}w.value=null});const le=a.computed(()=>o.value.rangeDraggableTrack&&E.value===null?(process.env.NODE_ENV!=="production"&&P(!1,"`draggableTrack` is not supported when `step` is `null`."),!1):o.value.rangeDraggableTrack),G=(e,l)=>{X(e,l),f("beforeChange",V(u.value))},te=a.computed(()=>_.value!==-1);a.watchEffect(()=>{if(!te.value){const e=u.value.lastIndexOf(W.value);y.value?.focus(e)}});const D=a.computed(()=>[...z.value].sort((e,l)=>e-l)),[ne,ue]=a.computed(()=>o.value.rangeEnabled?[D.value[0],D.value[D.value.length-1]]:[b.value,D.value[0]]).value;K({focus:()=>{y.value?.focus(0)},blur:()=>{const{activeElement:e}=document;R.value?.contains(e)&&e?.blur()}}),a.watchEffect(()=>{t.autoFocus&&y.value?.focus(0)});const re=a.computed(()=>({min:b,max:S,direction:k,disabled:t.disabled,keyboard:t.keyboard,step:E,included:t.included,includedStart:ne,includedEnd:ue,range:o.value.rangeEnabled,tabIndex:t.tabIndex,ariaLabelForHandle:t.ariaLabelForHandle,ariaLabelledByForHandle:t.ariaLabelledByForHandle,ariaRequired:t.ariaRequired,ariaValueTextFormatterForHandle:t.ariaValueTextFormatterForHandle,styles:t.styles||{},classNames:t.classNames||{}}));return ce.useProviderSliderContext(re.value),()=>{const{prefixCls:e="vc-slider",id:l,disabled:n=!1,vertical:s,startPoint:i,trackStyle:h,handleStyle:x,railStyle:v,dotStyle:g,activeDotStyle:c,dots:F,handleRender:H,activeHandleRender:j,track:I,classNames:M,styles:A}=t;return a.createVNode("div",{ref:R,class:J(e,[$.class],{[`${e}-disabled`]:n,[`${e}-vertical`]:s,[`${e}-horizontal`]:!s,[`${e}-with-marks`]:p.value.length}),style:$.style,onMousedown:ee,id:l},[a.createVNode("div",{class:J(`${e}-rail`,M?.rail),style:{...v,...A?.rail}},null),I&&a.createVNode(he.default,{prefixCls:e,trackStyle:h,values:u.value,startPoint:i,onStartMove:le.value?G:void 0},null),a.createVNode(be.default,{prefixCls:e,marks:p.value,dots:F,style:g,activeStyle:c},null),a.createVNode(ie.default,{ref:y,prefixCls:e,handleStyle:x,values:z.value,draggingIndex:_.value,draggingDelete:Z.value,onStartMove:G,onOffsetChange:ae,onFocus:O=>f("focus",O),onBlur:O=>f("blur",O),handleRender:H,activeHandleRender:j,onChangeComplete:L,onDelete:o.value.rangeEditable?U:()=>{}},null),a.createVNode(ge.default,{prefixCls:e,marks:p.value,onClick:Y},Q)])}}});exports.default=ye;
|
package/dist/Slider.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractPropTypes, PropType } from 'vue';
|
|
1
|
+
import { ExtractPropTypes, PropType, SlotsType } from 'vue';
|
|
2
2
|
import { AriaValueFormat, SliderClassNames, SliderStyles } from './interface';
|
|
3
3
|
import { MarkObj } from './Marks';
|
|
4
4
|
export interface RangeConfig {
|
|
@@ -9,6 +9,7 @@ export interface RangeConfig {
|
|
|
9
9
|
/** Set max count when `editable` */
|
|
10
10
|
maxCount?: number;
|
|
11
11
|
}
|
|
12
|
+
type ValueType = number | number[];
|
|
12
13
|
declare function sliderProps(): {
|
|
13
14
|
prefixCls: {
|
|
14
15
|
type: StringConstructor;
|
|
@@ -39,8 +40,8 @@ declare function sliderProps(): {
|
|
|
39
40
|
type: NumberConstructor;
|
|
40
41
|
default: number;
|
|
41
42
|
};
|
|
42
|
-
value: PropType<
|
|
43
|
-
defaultValue: PropType<
|
|
43
|
+
value: PropType<ValueType>;
|
|
44
|
+
defaultValue: PropType<ValueType>;
|
|
44
45
|
range: PropType<boolean | RangeConfig>;
|
|
45
46
|
count: NumberConstructor;
|
|
46
47
|
allowCross: {
|
|
@@ -72,13 +73,21 @@ declare function sliderProps(): {
|
|
|
72
73
|
default: boolean;
|
|
73
74
|
};
|
|
74
75
|
tabIndex: {
|
|
75
|
-
type: PropType<
|
|
76
|
+
type: PropType<ValueType>;
|
|
76
77
|
default: number;
|
|
77
78
|
};
|
|
78
79
|
ariaLabelForHandle: PropType<string | string[]>;
|
|
79
80
|
ariaLabelledByForHandle: PropType<string | string[]>;
|
|
80
81
|
ariaRequired: BooleanConstructor;
|
|
81
82
|
ariaValueTextFormatterForHandle: PropType<AriaValueFormat | AriaValueFormat[]>;
|
|
83
|
+
onFocus: PropType<(e: FocusEvent) => void>;
|
|
84
|
+
onBlur: PropType<(e: FocusEvent) => void>;
|
|
85
|
+
onChange: PropType<(value: ValueType) => void>;
|
|
86
|
+
/** @deprecated It's always better to use `onChange` instead */
|
|
87
|
+
onBeforeChange: PropType<(value: ValueType) => void>;
|
|
88
|
+
/** @deprecated Use `onChangeComplete` instead */
|
|
89
|
+
onAfterChange: PropType<(value: ValueType) => void>;
|
|
90
|
+
onChangeComplete: PropType<(value: ValueType) => void>;
|
|
82
91
|
};
|
|
83
92
|
export type SliderProps = Partial<ExtractPropTypes<ReturnType<typeof sliderProps>>>;
|
|
84
93
|
export interface SliderRef {
|
|
@@ -115,8 +124,8 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
115
124
|
type: NumberConstructor;
|
|
116
125
|
default: number;
|
|
117
126
|
};
|
|
118
|
-
value: PropType<
|
|
119
|
-
defaultValue: PropType<
|
|
127
|
+
value: PropType<ValueType>;
|
|
128
|
+
defaultValue: PropType<ValueType>;
|
|
120
129
|
range: PropType<boolean | RangeConfig>;
|
|
121
130
|
count: NumberConstructor;
|
|
122
131
|
allowCross: {
|
|
@@ -148,13 +157,21 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
148
157
|
default: boolean;
|
|
149
158
|
};
|
|
150
159
|
tabIndex: {
|
|
151
|
-
type: PropType<
|
|
160
|
+
type: PropType<ValueType>;
|
|
152
161
|
default: number;
|
|
153
162
|
};
|
|
154
163
|
ariaLabelForHandle: PropType<string | string[]>;
|
|
155
164
|
ariaLabelledByForHandle: PropType<string | string[]>;
|
|
156
165
|
ariaRequired: BooleanConstructor;
|
|
157
166
|
ariaValueTextFormatterForHandle: PropType<AriaValueFormat | AriaValueFormat[]>;
|
|
167
|
+
onFocus: PropType<(e: FocusEvent) => void>;
|
|
168
|
+
onBlur: PropType<(e: FocusEvent) => void>;
|
|
169
|
+
onChange: PropType<(value: ValueType) => void>;
|
|
170
|
+
/** @deprecated It's always better to use `onChange` instead */
|
|
171
|
+
onBeforeChange: PropType<(value: ValueType) => void>;
|
|
172
|
+
/** @deprecated Use `onChangeComplete` instead */
|
|
173
|
+
onAfterChange: PropType<(value: ValueType) => void>;
|
|
174
|
+
onChangeComplete: PropType<(value: ValueType) => void>;
|
|
158
175
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("focus" | "changeComplete" | "blur" | "change" | "beforeChange" | "afterChange")[], "focus" | "changeComplete" | "blur" | "change" | "beforeChange" | "afterChange", import('vue').PublicProps, Readonly<ExtractPropTypes<{
|
|
159
176
|
prefixCls: {
|
|
160
177
|
type: StringConstructor;
|
|
@@ -185,8 +202,8 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
185
202
|
type: NumberConstructor;
|
|
186
203
|
default: number;
|
|
187
204
|
};
|
|
188
|
-
value: PropType<
|
|
189
|
-
defaultValue: PropType<
|
|
205
|
+
value: PropType<ValueType>;
|
|
206
|
+
defaultValue: PropType<ValueType>;
|
|
190
207
|
range: PropType<boolean | RangeConfig>;
|
|
191
208
|
count: NumberConstructor;
|
|
192
209
|
allowCross: {
|
|
@@ -218,13 +235,21 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
218
235
|
default: boolean;
|
|
219
236
|
};
|
|
220
237
|
tabIndex: {
|
|
221
|
-
type: PropType<
|
|
238
|
+
type: PropType<ValueType>;
|
|
222
239
|
default: number;
|
|
223
240
|
};
|
|
224
241
|
ariaLabelForHandle: PropType<string | string[]>;
|
|
225
242
|
ariaLabelledByForHandle: PropType<string | string[]>;
|
|
226
243
|
ariaRequired: BooleanConstructor;
|
|
227
244
|
ariaValueTextFormatterForHandle: PropType<AriaValueFormat | AriaValueFormat[]>;
|
|
245
|
+
onFocus: PropType<(e: FocusEvent) => void>;
|
|
246
|
+
onBlur: PropType<(e: FocusEvent) => void>;
|
|
247
|
+
onChange: PropType<(value: ValueType) => void>;
|
|
248
|
+
/** @deprecated It's always better to use `onChange` instead */
|
|
249
|
+
onBeforeChange: PropType<(value: ValueType) => void>;
|
|
250
|
+
/** @deprecated Use `onChangeComplete` instead */
|
|
251
|
+
onAfterChange: PropType<(value: ValueType) => void>;
|
|
252
|
+
onChangeComplete: PropType<(value: ValueType) => void>;
|
|
228
253
|
}>> & Readonly<{
|
|
229
254
|
onFocus?: ((...args: any[]) => any) | undefined;
|
|
230
255
|
onChangeComplete?: ((...args: any[]) => any) | undefined;
|
|
@@ -240,7 +265,7 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
240
265
|
reverse: boolean;
|
|
241
266
|
disabled: boolean;
|
|
242
267
|
keyboard: boolean;
|
|
243
|
-
tabIndex:
|
|
268
|
+
tabIndex: ValueType;
|
|
244
269
|
ariaRequired: boolean;
|
|
245
270
|
vertical: boolean;
|
|
246
271
|
included: boolean;
|
|
@@ -249,5 +274,7 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
249
274
|
allowCross: boolean;
|
|
250
275
|
pushable: number | boolean;
|
|
251
276
|
dots: boolean;
|
|
252
|
-
}, {
|
|
277
|
+
}, SlotsType<{
|
|
278
|
+
mark: ({ point: number, label: unknown }: any) => any;
|
|
279
|
+
}>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
253
280
|
export default _default;
|