@v-c/slider 1.0.2 → 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/dist/Handles/Handle.cjs +1 -1
- package/dist/Handles/Handle.d.ts +14 -2
- package/dist/Handles/Handle.js +9 -7
- package/dist/Handles/index.cjs +1 -1
- package/dist/Handles/index.d.ts +20 -4
- package/dist/Handles/index.js +6 -2
- package/dist/Slider.cjs +1 -1
- package/dist/Slider.d.ts +25 -14
- package/dist/Slider.js +2 -2
- package/dist/Tracks/Track.cjs +1 -1
- package/dist/Tracks/Track.js +2 -2
- package/dist/hooks/useOffset.cjs +1 -1
- package/dist/hooks/useOffset.d.ts +1 -1
- package/dist/hooks/useOffset.js +76 -63
- package/docs/debug.vue +1 -2
- package/docs/editable.vue +3 -4
- package/docs/handle.vue +11 -5
- package/docs/marks.vue +20 -10
- package/docs/multiple.vue +1 -5
- package/docs/range.vue +25 -12
- package/docs/sliderDemo.vue +33 -17
- package/docs/vertical.vue +25 -12
- package/package.json +1 -1
- package/src/Handles/Handle.tsx +10 -1
- package/src/Handles/index.tsx +10 -2
- package/src/Slider.tsx +17 -8
- package/src/Tracks/Track.tsx +2 -2
- package/src/hooks/useOffset.ts +48 -40
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(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;
|
|
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:{type: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.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
2
|
import { OnStartMove, SliderClassNames, SliderStyles } from '../interface';
|
|
3
|
+
export interface RenderProps {
|
|
4
|
+
index: number;
|
|
5
|
+
prefixCls: string;
|
|
6
|
+
value: number;
|
|
7
|
+
dragging: boolean;
|
|
8
|
+
draggingDelete: boolean;
|
|
9
|
+
node: any;
|
|
10
|
+
}
|
|
3
11
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
12
|
prefixCls: {
|
|
5
13
|
type: StringConstructor;
|
|
@@ -41,7 +49,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
41
49
|
type: PropType<(e: MouseEvent, index: number) => void>;
|
|
42
50
|
required: true;
|
|
43
51
|
};
|
|
44
|
-
render:
|
|
52
|
+
render: {
|
|
53
|
+
type: PropType<(v: RenderProps) => any>;
|
|
54
|
+
};
|
|
45
55
|
onChangeComplete: PropType<() => void>;
|
|
46
56
|
mock: BooleanConstructor;
|
|
47
57
|
classNames: PropType<SliderClassNames>;
|
|
@@ -87,7 +97,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
87
97
|
type: PropType<(e: MouseEvent, index: number) => void>;
|
|
88
98
|
required: true;
|
|
89
99
|
};
|
|
90
|
-
render:
|
|
100
|
+
render: {
|
|
101
|
+
type: PropType<(v: RenderProps) => any>;
|
|
102
|
+
};
|
|
91
103
|
onChangeComplete: PropType<() => void>;
|
|
92
104
|
mock: BooleanConstructor;
|
|
93
105
|
classNames: PropType<SliderClassNames>;
|
package/dist/Handles/Handle.js
CHANGED
|
@@ -46,7 +46,9 @@ const te = /* @__PURE__ */ L({
|
|
|
46
46
|
type: Function,
|
|
47
47
|
required: !0
|
|
48
48
|
},
|
|
49
|
-
render:
|
|
49
|
+
render: {
|
|
50
|
+
type: Function
|
|
51
|
+
},
|
|
50
52
|
onChangeComplete: Function,
|
|
51
53
|
mock: Boolean,
|
|
52
54
|
classNames: Object,
|
|
@@ -70,7 +72,7 @@ const te = /* @__PURE__ */ L({
|
|
|
70
72
|
ariaLabelledByForHandle: M,
|
|
71
73
|
ariaRequired: q,
|
|
72
74
|
ariaValueTextFormatterForHandle: O
|
|
73
|
-
} = $(), i = c({}), g = c({}), b = c({}),
|
|
75
|
+
} = $(), i = c({}), g = c({}), b = c({}), y = (a) => {
|
|
74
76
|
s || o("startMove", a, l.valueIndex);
|
|
75
77
|
}, H = (a) => {
|
|
76
78
|
o("focus", a, l.valueIndex);
|
|
@@ -136,7 +138,7 @@ const te = /* @__PURE__ */ L({
|
|
|
136
138
|
valueIndex: r,
|
|
137
139
|
onStartMove: _,
|
|
138
140
|
onDelete: j,
|
|
139
|
-
render:
|
|
141
|
+
render: m,
|
|
140
142
|
dragging: h,
|
|
141
143
|
draggingDelete: p,
|
|
142
144
|
onOffsetChange: V,
|
|
@@ -159,8 +161,8 @@ const te = /* @__PURE__ */ L({
|
|
|
159
161
|
"aria-required": u(q, r),
|
|
160
162
|
"aria-valuetext": u(O, r)?.(n),
|
|
161
163
|
"aria-orientation": t.value === "ltr" || t.value === "rtl" ? "horizontal" : "vertical",
|
|
162
|
-
onMousedown:
|
|
163
|
-
onTouchstart:
|
|
164
|
+
onMousedown: y,
|
|
165
|
+
onTouchstart: y,
|
|
164
166
|
onFocus: H,
|
|
165
167
|
onMouseenter: S,
|
|
166
168
|
onKeydown: w,
|
|
@@ -183,7 +185,7 @@ const te = /* @__PURE__ */ L({
|
|
|
183
185
|
class: g.value,
|
|
184
186
|
style: b.value
|
|
185
187
|
}, i.value), null);
|
|
186
|
-
if (
|
|
188
|
+
if (m) {
|
|
187
189
|
const B = {
|
|
188
190
|
index: r,
|
|
189
191
|
prefixCls: a,
|
|
@@ -192,7 +194,7 @@ const te = /* @__PURE__ */ L({
|
|
|
192
194
|
draggingDelete: p,
|
|
193
195
|
node: C
|
|
194
196
|
};
|
|
195
|
-
return F(() =>
|
|
197
|
+
return F(() => m(B), null, null);
|
|
196
198
|
}
|
|
197
199
|
return C;
|
|
198
200
|
};
|
package/dist/Handles/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),I=require("../util.cjs"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),I=require("../util.cjs"),f=require("./Handle.cjs"),M=e.defineComponent({name:"Handles",props:{prefixCls:{type:String,required:!0},values:{type:Array,required:!0},handleStyle:{type:[Object,Array]},onStartMove:{type:Function,required:!0},onOffsetChange:{type:Function,required:!0},onFocus:{type:Function},onBlur:{type:Function},onDelete:{type:Function,required:!0},handleRender:{type:Function},activeHandleRender:{type:Function},draggingIndex:{type:Number,default:-1},draggingDelete:{type:Boolean,default:!1},onChangeComplete:Function},emits:["focus"],slots:Object,setup(v,{emit:y,expose:F}){const u=e.ref(),o=e.ref(!1),a=e.ref(-1),l=n=>{a.value=n,o.value=!0},h=(n,t)=>{l(t),y("focus",n)},m=(n,t)=>{l(t)};return F({focus:()=>u.value?.focus(),hideHelp:()=>{o.value=!1}}),()=>{const{prefixCls:n,onStartMove:t,onOffsetChange:q,values:s,handleRender:H,activeHandleRender:d,draggingIndex:i,draggingDelete:c,onFocus:x,handleStyle:C,...S}=v,g={prefixCls:n,onStartMove:t,onOffsetChange:q,render:H,onFocus:h,onMouseenter:m,...S};return e.createVNode(e.Fragment,null,[s?.map((b,r)=>{const p=i===r;return e.createVNode(f.default,e.mergeProps({ref:u.value,dragging:p,draggingDelete:p&&c,style:I.getIndex(C,r),key:r,value:b,valueIndex:r},g),null)}),d&&o.value&&e.createVNode(f.default,e.mergeProps({key:"a11y"},g,{value:s[a.value],valueIndex:1,dragging:i!==-1,draggingDelete:c,render:d,style:{pointerEvents:"none"},"aria-hidden":!0}),null)])}}});exports.default=M;
|
package/dist/Handles/index.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { CSSProperties, PropType, SlotsType } from 'vue';
|
|
2
2
|
import { OnStartMove } from '../interface';
|
|
3
|
+
export interface RenderProps {
|
|
4
|
+
index: number;
|
|
5
|
+
prefixCls: string;
|
|
6
|
+
value: number;
|
|
7
|
+
dragging: boolean;
|
|
8
|
+
draggingDelete: boolean;
|
|
9
|
+
node: any;
|
|
10
|
+
}
|
|
3
11
|
export interface HandlesRef {
|
|
4
12
|
focus: (index: number) => void;
|
|
5
13
|
hideHelp: VoidFunction;
|
|
@@ -34,8 +42,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
34
42
|
type: PropType<(index: number) => void>;
|
|
35
43
|
required: true;
|
|
36
44
|
};
|
|
37
|
-
handleRender:
|
|
38
|
-
|
|
45
|
+
handleRender: {
|
|
46
|
+
type: PropType<(props: RenderProps) => any>;
|
|
47
|
+
};
|
|
48
|
+
activeHandleRender: {
|
|
49
|
+
type: PropType<(props: RenderProps) => any>;
|
|
50
|
+
};
|
|
39
51
|
draggingIndex: {
|
|
40
52
|
type: NumberConstructor;
|
|
41
53
|
default: number;
|
|
@@ -75,8 +87,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
75
87
|
type: PropType<(index: number) => void>;
|
|
76
88
|
required: true;
|
|
77
89
|
};
|
|
78
|
-
handleRender:
|
|
79
|
-
|
|
90
|
+
handleRender: {
|
|
91
|
+
type: PropType<(props: RenderProps) => any>;
|
|
92
|
+
};
|
|
93
|
+
activeHandleRender: {
|
|
94
|
+
type: PropType<(props: RenderProps) => any>;
|
|
95
|
+
};
|
|
80
96
|
draggingIndex: {
|
|
81
97
|
type: NumberConstructor;
|
|
82
98
|
default: number;
|
package/dist/Handles/index.js
CHANGED
|
@@ -33,8 +33,12 @@ const k = /* @__PURE__ */ S({
|
|
|
33
33
|
type: Function,
|
|
34
34
|
required: !0
|
|
35
35
|
},
|
|
36
|
-
handleRender:
|
|
37
|
-
|
|
36
|
+
handleRender: {
|
|
37
|
+
type: Function
|
|
38
|
+
},
|
|
39
|
+
activeHandleRender: {
|
|
40
|
+
type: Function
|
|
41
|
+
},
|
|
38
42
|
draggingIndex: {
|
|
39
43
|
type: Number,
|
|
40
44
|
default: -1
|
package/dist/Slider.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,null],default:1},value:[Number,Array,null],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
|
@@ -9,6 +9,14 @@ export interface RangeConfig {
|
|
|
9
9
|
/** Set max count when `editable` */
|
|
10
10
|
maxCount?: number;
|
|
11
11
|
}
|
|
12
|
+
export interface RenderProps {
|
|
13
|
+
index: number;
|
|
14
|
+
prefixCls: string;
|
|
15
|
+
value: number;
|
|
16
|
+
dragging: boolean;
|
|
17
|
+
draggingDelete: boolean;
|
|
18
|
+
node: any;
|
|
19
|
+
}
|
|
12
20
|
type ValueType = number | number[];
|
|
13
21
|
declare function sliderProps(): {
|
|
14
22
|
prefixCls: {
|
|
@@ -37,10 +45,10 @@ declare function sliderProps(): {
|
|
|
37
45
|
default: number;
|
|
38
46
|
};
|
|
39
47
|
step: {
|
|
40
|
-
type: NumberConstructor;
|
|
48
|
+
type: (NumberConstructor | null)[];
|
|
41
49
|
default: number;
|
|
42
50
|
};
|
|
43
|
-
value: PropType<ValueType>;
|
|
51
|
+
value: PropType<ValueType | null>;
|
|
44
52
|
defaultValue: PropType<ValueType>;
|
|
45
53
|
range: PropType<boolean | RangeConfig>;
|
|
46
54
|
count: NumberConstructor;
|
|
@@ -66,8 +74,8 @@ declare function sliderProps(): {
|
|
|
66
74
|
activeDotStyle: PropType<Record<string, any> | ((dotValue: number) => Record<string, any>)>;
|
|
67
75
|
marks: PropType<Record<string | number, any | MarkObj>>;
|
|
68
76
|
dots: BooleanConstructor;
|
|
69
|
-
handleRender:
|
|
70
|
-
activeHandleRender:
|
|
77
|
+
handleRender: PropType<(props: RenderProps) => any>;
|
|
78
|
+
activeHandleRender: PropType<(props: RenderProps) => any>;
|
|
71
79
|
track: {
|
|
72
80
|
type: BooleanConstructor;
|
|
73
81
|
default: boolean;
|
|
@@ -121,10 +129,10 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
121
129
|
default: number;
|
|
122
130
|
};
|
|
123
131
|
step: {
|
|
124
|
-
type: NumberConstructor;
|
|
132
|
+
type: (NumberConstructor | null)[];
|
|
125
133
|
default: number;
|
|
126
134
|
};
|
|
127
|
-
value: PropType<ValueType>;
|
|
135
|
+
value: PropType<ValueType | null>;
|
|
128
136
|
defaultValue: PropType<ValueType>;
|
|
129
137
|
range: PropType<boolean | RangeConfig>;
|
|
130
138
|
count: NumberConstructor;
|
|
@@ -150,8 +158,8 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
150
158
|
activeDotStyle: PropType<Record<string, any> | ((dotValue: number) => Record<string, any>)>;
|
|
151
159
|
marks: PropType<Record<string | number, any | MarkObj>>;
|
|
152
160
|
dots: BooleanConstructor;
|
|
153
|
-
handleRender:
|
|
154
|
-
activeHandleRender:
|
|
161
|
+
handleRender: PropType<(props: RenderProps) => any>;
|
|
162
|
+
activeHandleRender: PropType<(props: RenderProps) => any>;
|
|
155
163
|
track: {
|
|
156
164
|
type: BooleanConstructor;
|
|
157
165
|
default: boolean;
|
|
@@ -199,10 +207,10 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
199
207
|
default: number;
|
|
200
208
|
};
|
|
201
209
|
step: {
|
|
202
|
-
type: NumberConstructor;
|
|
210
|
+
type: (NumberConstructor | null)[];
|
|
203
211
|
default: number;
|
|
204
212
|
};
|
|
205
|
-
value: PropType<ValueType>;
|
|
213
|
+
value: PropType<ValueType | null>;
|
|
206
214
|
defaultValue: PropType<ValueType>;
|
|
207
215
|
range: PropType<boolean | RangeConfig>;
|
|
208
216
|
count: NumberConstructor;
|
|
@@ -228,8 +236,8 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
228
236
|
activeDotStyle: PropType<Record<string, any> | ((dotValue: number) => Record<string, any>)>;
|
|
229
237
|
marks: PropType<Record<string | number, any | MarkObj>>;
|
|
230
238
|
dots: BooleanConstructor;
|
|
231
|
-
handleRender:
|
|
232
|
-
activeHandleRender:
|
|
239
|
+
handleRender: PropType<(props: RenderProps) => any>;
|
|
240
|
+
activeHandleRender: PropType<(props: RenderProps) => any>;
|
|
233
241
|
track: {
|
|
234
242
|
type: BooleanConstructor;
|
|
235
243
|
default: boolean;
|
|
@@ -270,11 +278,14 @@ declare const _default: import('vue').DefineComponent<ExtractPropTypes<{
|
|
|
270
278
|
vertical: boolean;
|
|
271
279
|
included: boolean;
|
|
272
280
|
autoFocus: boolean;
|
|
273
|
-
step: number;
|
|
281
|
+
step: number | null;
|
|
274
282
|
allowCross: boolean;
|
|
275
283
|
pushable: number | boolean;
|
|
276
284
|
dots: boolean;
|
|
277
285
|
}, SlotsType<{
|
|
278
|
-
mark: ({ point
|
|
286
|
+
mark: ({ point, label }: {
|
|
287
|
+
point: number;
|
|
288
|
+
label: unknown;
|
|
289
|
+
}) => any;
|
|
279
290
|
}>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
280
291
|
export default _default;
|
package/dist/Slider.js
CHANGED
|
@@ -38,10 +38,10 @@ function pe() {
|
|
|
38
38
|
default: 100
|
|
39
39
|
},
|
|
40
40
|
step: {
|
|
41
|
-
type: Number,
|
|
41
|
+
type: [Number, null],
|
|
42
42
|
default: 1
|
|
43
43
|
},
|
|
44
|
-
value: [Number, Array],
|
|
44
|
+
value: [Number, Array, null],
|
|
45
45
|
defaultValue: [Number, Array],
|
|
46
46
|
range: [Boolean, Object],
|
|
47
47
|
count: Number,
|
package/dist/Tracks/Track.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("vue"),h=require("classnames"),M=require("../context.cjs"),d=require("../util.cjs"),q=c.defineComponent({name:"Track",props:{prefixCls:{type:String,required:!0},replaceCls:{type:String},start:{type:Number,required:!0},end:{type:Number,required:!0},index:{type:Number,default:()=>null},onStartMove:{type:Function}},setup(a,{attrs:f}){const{direction:v,min:s,max:o,disabled:b,range:p,classNames:g}=M.useInjectSlider(),S=r=>{!b&&a.onStartMove&&a.onStartMove(r,-1)}
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("vue"),h=require("classnames"),M=require("../context.cjs"),d=require("../util.cjs"),q=c.defineComponent({name:"Track",props:{prefixCls:{type:String,required:!0},replaceCls:{type:String},start:{type:Number,required:!0},end:{type:Number,required:!0},index:{type:Number,default:()=>null},onStartMove:{type:Function}},setup(a,{attrs:f}){const{direction:v,min:s,max:o,disabled:b,range:p,classNames:g}=M.useInjectSlider(),S=r=>{!b&&a.onStartMove&&a.onStartMove(r,-1)};return()=>{const{prefixCls:r,index:l,onStartMove:u,replaceCls:$,start:m,end:y}=a,t=d.getOffset(m,s.value,o.value),n=d.getOffset(y,s.value,o.value),i=`${r}-track`,k=$||h(i,{[`${i}-${l+1}`]:l!==null&&p,[`${r}-track-draggable`]:u},g.track),e={};switch(v.value){case"rtl":e.right=`${t*100}%`,e.width=`${n*100-t*100}%`;break;case"btt":e.bottom=`${t*100}%`,e.height=`${n*100-t*100}%`;break;case"ttb":e.top=`${t*100}%`,e.height=`${n*100-t*100}%`;break;default:e.left=`${t*100}%`,e.width=`${n*100-t*100}%`}return c.createVNode("div",{class:k,style:{...e,...f.style},onMousedown:u?S:void 0},null)}}});exports.default=q;
|
package/dist/Tracks/Track.js
CHANGED
|
@@ -40,7 +40,7 @@ const I = /* @__PURE__ */ y({
|
|
|
40
40
|
classNames: $
|
|
41
41
|
} = C(), b = (r) => {
|
|
42
42
|
!m && n.onStartMove && n.onStartMove(r, -1);
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
return () => {
|
|
45
45
|
const {
|
|
46
46
|
prefixCls: r,
|
|
@@ -52,7 +52,7 @@ const I = /* @__PURE__ */ y({
|
|
|
52
52
|
} = n, t = u(S, o.value, s.value), a = u(g, o.value, s.value), c = `${r}-track`, k = v || x(c, {
|
|
53
53
|
[`${c}-${l + 1}`]: l !== null && p,
|
|
54
54
|
[`${r}-track-draggable`]: i
|
|
55
|
-
}, $.track);
|
|
55
|
+
}, $.track), e = {};
|
|
56
56
|
switch (f.value) {
|
|
57
57
|
case "rtl":
|
|
58
58
|
e.right = `${t * 100}%`, e.width = `${a * 100 - t * 100}%`;
|
package/dist/hooks/useOffset.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 P=require("vue");function _(c,a,h,b,O,V){const D=P.computed(()=>r=>Math.max(c,Math.min(a,r))).value,g=r=>{if(h!==null){const i=c+Math.round((D(r)-c)/h)*h,l=u=>(String(u).split(".")[1]||"").length,s=Math.max(l(h),l(a),l(c)),t=Number(i.toFixed(s));return c<=t&&t<=a?t:null}return null},w=r=>{const i=D(r),l=b.map(u=>u&&u.value);if(h!==null){const u=g(r);u!==null&&l.push(u)}l.push(c,a);let s=l[0],t=a-c;return l.forEach(u=>{const f=Math.abs(i-u);f<=t&&(s=u,t=f)}),s},S=(r,i,l,s="unit")=>{if(typeof i=="number"){let t;const u=r[l],f=u+i;let e=[];b.forEach(n=>{e.push(n.value)}),e.push(c,a);const o=g(u);o!==null&&e.push(o);const y=i>0?1:-1;if(s==="unit"){const n=g(u+y*h);n!==null&&e.push(n)}else{const n=g(f);n!==null&&e.push(n)}e=e.filter(n=>n!==null).filter(n=>i<0?n<=u:n>=u),s==="unit"&&(e=e.filter(n=>n!==u));const E=s==="unit"?u:f;t=e[0];let N=Math.abs(t-E);if(e.forEach(n=>{const m=Math.abs(n-E);m<N&&(t=n,N=m)}),t===void 0)return i<0?c:a;if(s==="dist")return t;if(Math.abs(i)>1){const n=[...r];return n[l]=t,S(n,i-y,l,s)}return t}else{if(i==="min")return c;if(i==="max")return a}},p=(r,i,l,s="unit")=>{const t=r[l],u=S(r,i,l,s);return{value:u,changed:u!==t}},M=r=>V===null&&r===0||typeof V=="number"&&r<V;return[w,(r,i,l,s="unit")=>{const t=r.map(w),u=t[l],f=S(t,i,l,s);if(t[l]=f,O){if(typeof V=="number"||V===null){for(let e=l+1;e<t.length;e+=1){let o=!0;for(;M(t[e]-t[e-1])&&o;)({value:t[e],changed:o}=p(t,1,e))}for(let e=l;e>0;e-=1){let o=!0;for(;M(t[e]-t[e-1])&&o;)({value:t[e-1],changed:o}=p(t,-1,e-1))}for(let e=t.length-1;e>0;e-=1){let o=!0;for(;M(t[e]-t[e-1])&&o;)({value:t[e-1],changed:o}=p(t,-1,e-1))}for(let e=0;e<t.length-1;e+=1){let o=!0;for(;M(t[e+1]-t[e])&&o;)({value:t[e+1],changed:o}=p(t,1,e+1))}}}else{const e=V||0;l>0&&t[l-1]!==u&&(t[l]=Math.max(t[l],t[l-1]+e)),l<t.length-1&&t[l+1]!==u&&(t[l]=Math.min(t[l],t[l+1]-e))}return{value:t[l],values:t}}]}exports.default=_;
|
|
@@ -6,5 +6,5 @@ export type OffsetValues = (values: number[], offset: number | 'min' | 'max', va
|
|
|
6
6
|
value: number;
|
|
7
7
|
values: number[];
|
|
8
8
|
};
|
|
9
|
-
export default function useOffset(min: number, max: number, step: number, markList: InternalMarkObj[], allowCross: boolean, pushable: false | number): [FormatValue, OffsetValues];
|
|
9
|
+
export default function useOffset(min: number, max: number, step: number | null, markList: InternalMarkObj[], allowCross: boolean, pushable: false | number | null): [FormatValue, OffsetValues];
|
|
10
10
|
export {};
|
package/dist/hooks/useOffset.js
CHANGED
|
@@ -1,98 +1,111 @@
|
|
|
1
|
-
import { computed as
|
|
2
|
-
function
|
|
3
|
-
const
|
|
4
|
-
if (
|
|
5
|
-
const
|
|
1
|
+
import { computed as F } from "vue";
|
|
2
|
+
function R(c, a, h, S, C, V) {
|
|
3
|
+
const w = F(() => (r) => Math.max(c, Math.min(a, r))).value, g = (r) => {
|
|
4
|
+
if (h !== null) {
|
|
5
|
+
const i = c + Math.round((w(r) - c) / h) * h, l = (n) => (String(n).split(".")[1] || "").length, o = Math.max(l(h), l(a), l(c)), t = Number(i.toFixed(o));
|
|
6
6
|
return c <= t && t <= a ? t : null;
|
|
7
7
|
}
|
|
8
8
|
return null;
|
|
9
|
-
}
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
}, b = (r) => {
|
|
10
|
+
const i = w(r), l = S.map((n) => n && n.value);
|
|
11
|
+
if (h !== null) {
|
|
12
|
+
const n = g(r);
|
|
13
|
+
n !== null && l.push(n);
|
|
14
|
+
}
|
|
15
|
+
l.push(c, a);
|
|
16
|
+
let o = l[0], t = a - c;
|
|
17
|
+
return l.forEach((n) => {
|
|
18
|
+
const f = Math.abs(i - n);
|
|
19
|
+
f <= t && (o = n, t = f);
|
|
20
|
+
}), o;
|
|
21
|
+
}, D = (r, i, l, o = "unit") => {
|
|
22
|
+
if (typeof i == "number") {
|
|
19
23
|
let t;
|
|
20
|
-
const
|
|
24
|
+
const n = r[l], f = n + i;
|
|
21
25
|
let e = [];
|
|
22
|
-
|
|
23
|
-
e.push(
|
|
24
|
-
}), e.push(c, a)
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
const
|
|
26
|
+
S.forEach((u) => {
|
|
27
|
+
e.push(u.value);
|
|
28
|
+
}), e.push(c, a);
|
|
29
|
+
const s = g(n);
|
|
30
|
+
s !== null && e.push(s);
|
|
31
|
+
const m = i > 0 ? 1 : -1;
|
|
32
|
+
if (o === "unit") {
|
|
33
|
+
const u = g(n + m * h);
|
|
34
|
+
u !== null && e.push(u);
|
|
35
|
+
} else {
|
|
36
|
+
const u = g(f);
|
|
37
|
+
u !== null && e.push(u);
|
|
38
|
+
}
|
|
39
|
+
e = e.filter((u) => u !== null).filter((u) => i < 0 ? u <= n : u >= n), o === "unit" && (e = e.filter((u) => u !== n));
|
|
40
|
+
const y = o === "unit" ? n : f;
|
|
28
41
|
t = e[0];
|
|
29
|
-
let
|
|
30
|
-
if (e.forEach((
|
|
31
|
-
const
|
|
32
|
-
|
|
42
|
+
let E = Math.abs(t - y);
|
|
43
|
+
if (e.forEach((u) => {
|
|
44
|
+
const N = Math.abs(u - y);
|
|
45
|
+
N < E && (t = u, E = N);
|
|
33
46
|
}), t === void 0)
|
|
34
|
-
return
|
|
35
|
-
if (
|
|
47
|
+
return i < 0 ? c : a;
|
|
48
|
+
if (o === "dist")
|
|
36
49
|
return t;
|
|
37
|
-
if (Math.abs(
|
|
38
|
-
const
|
|
39
|
-
return
|
|
50
|
+
if (Math.abs(i) > 1) {
|
|
51
|
+
const u = [...r];
|
|
52
|
+
return u[l] = t, D(u, i - m, l, o);
|
|
40
53
|
}
|
|
41
54
|
return t;
|
|
42
55
|
} else {
|
|
43
|
-
if (
|
|
56
|
+
if (i === "min")
|
|
44
57
|
return c;
|
|
45
|
-
if (
|
|
58
|
+
if (i === "max")
|
|
46
59
|
return a;
|
|
47
60
|
}
|
|
48
|
-
}, p = (
|
|
49
|
-
const t =
|
|
61
|
+
}, p = (r, i, l, o = "unit") => {
|
|
62
|
+
const t = r[l], n = D(r, i, l, o);
|
|
50
63
|
return {
|
|
51
|
-
value:
|
|
52
|
-
changed:
|
|
64
|
+
value: n,
|
|
65
|
+
changed: n !== t
|
|
53
66
|
};
|
|
54
|
-
}, M = (
|
|
55
|
-
return [
|
|
56
|
-
const t =
|
|
57
|
-
if (t[
|
|
67
|
+
}, M = (r) => V === null && r === 0 || typeof V == "number" && r < V;
|
|
68
|
+
return [b, (r, i, l, o = "unit") => {
|
|
69
|
+
const t = r.map(b), n = t[l], f = D(t, i, l, o);
|
|
70
|
+
if (t[l] = f, C) {
|
|
58
71
|
if (typeof V == "number" || V === null) {
|
|
59
|
-
for (let e =
|
|
60
|
-
let
|
|
61
|
-
for (; M(t[e] - t[e - 1]) &&
|
|
62
|
-
({ value: t[e], changed:
|
|
72
|
+
for (let e = l + 1; e < t.length; e += 1) {
|
|
73
|
+
let s = !0;
|
|
74
|
+
for (; M(t[e] - t[e - 1]) && s; )
|
|
75
|
+
({ value: t[e], changed: s } = p(t, 1, e));
|
|
63
76
|
}
|
|
64
|
-
for (let e =
|
|
65
|
-
let
|
|
66
|
-
for (; M(t[e] - t[e - 1]) &&
|
|
67
|
-
({ value: t[e - 1], changed:
|
|
77
|
+
for (let e = l; e > 0; e -= 1) {
|
|
78
|
+
let s = !0;
|
|
79
|
+
for (; M(t[e] - t[e - 1]) && s; )
|
|
80
|
+
({ value: t[e - 1], changed: s } = p(t, -1, e - 1));
|
|
68
81
|
}
|
|
69
82
|
for (let e = t.length - 1; e > 0; e -= 1) {
|
|
70
|
-
let
|
|
71
|
-
for (; M(t[e] - t[e - 1]) &&
|
|
72
|
-
({ value: t[e - 1], changed:
|
|
83
|
+
let s = !0;
|
|
84
|
+
for (; M(t[e] - t[e - 1]) && s; )
|
|
85
|
+
({ value: t[e - 1], changed: s } = p(t, -1, e - 1));
|
|
73
86
|
}
|
|
74
87
|
for (let e = 0; e < t.length - 1; e += 1) {
|
|
75
|
-
let
|
|
76
|
-
for (; M(t[e + 1] - t[e]) &&
|
|
77
|
-
({ value: t[e + 1], changed:
|
|
88
|
+
let s = !0;
|
|
89
|
+
for (; M(t[e + 1] - t[e]) && s; )
|
|
90
|
+
({ value: t[e + 1], changed: s } = p(t, 1, e + 1));
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
93
|
} else {
|
|
81
94
|
const e = V || 0;
|
|
82
|
-
|
|
83
|
-
t[
|
|
84
|
-
t[
|
|
85
|
-
)),
|
|
86
|
-
t[
|
|
87
|
-
t[
|
|
95
|
+
l > 0 && t[l - 1] !== n && (t[l] = Math.max(
|
|
96
|
+
t[l],
|
|
97
|
+
t[l - 1] + e
|
|
98
|
+
)), l < t.length - 1 && t[l + 1] !== n && (t[l] = Math.min(
|
|
99
|
+
t[l],
|
|
100
|
+
t[l + 1] - e
|
|
88
101
|
));
|
|
89
102
|
}
|
|
90
103
|
return {
|
|
91
|
-
value: t[
|
|
104
|
+
value: t[l],
|
|
92
105
|
values: t
|
|
93
106
|
};
|
|
94
107
|
}];
|
|
95
108
|
}
|
|
96
109
|
export {
|
|
97
|
-
|
|
110
|
+
R as default
|
|
98
111
|
};
|
package/docs/debug.vue
CHANGED
|
@@ -10,7 +10,6 @@ const data = ref()
|
|
|
10
10
|
|
|
11
11
|
function handleSliderChange(nextValues) {
|
|
12
12
|
console.log('Change:', nextValues)
|
|
13
|
-
data.value = nextValues
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
function handleSliderChangeComplete(v) {
|
|
@@ -41,8 +40,8 @@ function handleSliderChangeComplete(v) {
|
|
|
41
40
|
|
|
42
41
|
<div style="height: 300px; width: 600px;">
|
|
43
42
|
<Slider
|
|
43
|
+
v-model:value="data"
|
|
44
44
|
:disabled="disabled"
|
|
45
|
-
:value="data"
|
|
46
45
|
:step="0.01"
|
|
47
46
|
:default-value="0.81"
|
|
48
47
|
:min="0"
|
package/docs/editable.vue
CHANGED
|
@@ -20,12 +20,11 @@ function onDragChange(info: Parameters<UnstableContextProps['onDragChange']>[0])
|
|
|
20
20
|
console.log('Move:', rawValues)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
function handleChange(nextValue: number[]) {
|
|
23
|
+
function handleChange(nextValue: number | number[]) {
|
|
24
24
|
console.error('Change:', nextValue)
|
|
25
|
-
value.value = nextValue
|
|
26
25
|
}
|
|
27
26
|
|
|
28
|
-
function handleChangeComplete(nextValue: number[]) {
|
|
27
|
+
function handleChangeComplete(nextValue: number | number[]) {
|
|
29
28
|
console.log('Complete', nextValue)
|
|
30
29
|
}
|
|
31
30
|
</script>
|
|
@@ -34,6 +33,7 @@ function handleChangeComplete(nextValue: number[]) {
|
|
|
34
33
|
<div>
|
|
35
34
|
<div :style="style">
|
|
36
35
|
<Slider
|
|
36
|
+
v-model:value="value"
|
|
37
37
|
:range="{
|
|
38
38
|
editable: true,
|
|
39
39
|
minCount: 1,
|
|
@@ -41,7 +41,6 @@ function handleChangeComplete(nextValue: number[]) {
|
|
|
41
41
|
}"
|
|
42
42
|
:min="0"
|
|
43
43
|
:max="100"
|
|
44
|
-
:value="value"
|
|
45
44
|
:styles="{
|
|
46
45
|
rail: {
|
|
47
46
|
background: 'linear-gradient(to right, blue, red)',
|