@onereach/ui-components 8.19.5 → 8.20.0
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/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.js +146 -25
- package/dist/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.vue.d.ts +43 -25
- package/dist/bundled/v2/components/OrRangeSliderV3/styles.js +40 -0
- package/dist/bundled/v2/components/OrSliderV3/OrSlider.js +68 -13
- package/dist/bundled/v2/components/OrSliderV3/OrSlider.vue.d.ts +31 -21
- package/dist/bundled/v2/components/OrSliderV3/props.d.ts +3 -1
- package/dist/bundled/v2/components/OrSliderV3/props.js +2 -0
- package/dist/bundled/v2/components/OrSliderV3/styles.js +34 -0
- package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.js +1 -1
- package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.vue.d.ts +27 -18
- package/dist/bundled/v3/components/OrRangeSliderV3/index.js +2 -2
- package/dist/bundled/v3/components/OrRangeSliderV3/props.js +1 -1
- package/dist/bundled/v3/components/OrRangeSliderV3/styles.js +2 -2
- package/dist/bundled/v3/components/{OrRangeSliderV3-f8024c15.js → OrRangeSliderV3-fac9697f.js} +187 -27
- package/dist/bundled/v3/components/OrSliderV3/OrSlider.js +1 -1
- package/dist/bundled/v3/components/OrSliderV3/OrSlider.vue.d.ts +21 -16
- package/dist/bundled/v3/components/OrSliderV3/index.js +1 -1
- package/dist/bundled/v3/components/OrSliderV3/props.d.ts +3 -1
- package/dist/bundled/v3/components/OrSliderV3/props.js +1 -1
- package/dist/bundled/v3/components/OrSliderV3/styles.js +1 -1
- package/dist/bundled/v3/components/{OrSliderV3-b69331d1.js → OrSliderV3-6d75304d.js} +104 -14
- package/dist/bundled/v3/components/index.js +2 -2
- package/dist/bundled/v3/index.js +2 -2
- package/dist/esm/v2/{OrRangeSlider-2fba4c60.js → OrRangeSlider-7a377862.js} +187 -26
- package/dist/esm/v2/{OrSlider-dd60a4a1.js → OrSlider-dd967591.js} +3 -4
- package/dist/esm/v2/{OrSlider.vue_rollup-plugin-vue_script-eadc5fc6.js → OrSlider.vue_rollup-plugin-vue_script-79f356ca.js} +102 -10
- package/dist/esm/v2/components/index.js +3 -3
- package/dist/esm/v2/components/or-range-slider-v3/OrRangeSlider.vue.d.ts +43 -25
- package/dist/esm/v2/components/or-range-slider-v3/index.js +2 -2
- package/dist/esm/v2/components/or-slider-v3/OrSlider.vue.d.ts +31 -21
- package/dist/esm/v2/components/or-slider-v3/index.js +2 -2
- package/dist/esm/v2/components/or-slider-v3/props.d.ts +3 -1
- package/dist/esm/v2/index.js +3 -3
- package/dist/esm/v3/{OrRangeSlider-1c6ff524.js → OrRangeSlider-cd72332c.js} +187 -27
- package/dist/esm/v3/{OrSlider-654bd19f.js → OrSlider-ba7aff7c.js} +104 -14
- package/dist/esm/v3/components/index.js +2 -2
- package/dist/esm/v3/components/or-range-slider-v3/OrRangeSlider.vue.d.ts +27 -18
- package/dist/esm/v3/components/or-range-slider-v3/index.js +2 -2
- package/dist/esm/v3/components/or-slider-v3/OrSlider.vue.d.ts +21 -16
- package/dist/esm/v3/components/or-slider-v3/index.js +1 -1
- package/dist/esm/v3/components/or-slider-v3/props.d.ts +3 -1
- package/dist/esm/v3/index.js +2 -2
- package/package.json +2 -2
- package/src/components/or-range-slider-v3/OrRangeSlider.vue +154 -28
- package/src/components/or-range-slider-v3/styles.ts +68 -0
- package/src/components/or-slider-v3/OrSlider.vue +66 -14
- package/src/components/or-slider-v3/props.ts +2 -0
- package/src/components/or-slider-v3/styles.ts +58 -0
|
@@ -18,19 +18,19 @@ var script = defineComponent({
|
|
|
18
18
|
props: {
|
|
19
19
|
modelValue: {
|
|
20
20
|
type: Object,
|
|
21
|
-
default: undefined
|
|
21
|
+
default: () => undefined
|
|
22
22
|
},
|
|
23
23
|
minValue: {
|
|
24
24
|
type: Number,
|
|
25
|
-
default: 0
|
|
25
|
+
default: () => 0
|
|
26
26
|
},
|
|
27
27
|
maxValue: {
|
|
28
28
|
type: Number,
|
|
29
|
-
default: 100
|
|
29
|
+
default: () => 100
|
|
30
30
|
},
|
|
31
31
|
step: {
|
|
32
32
|
type: Number,
|
|
33
|
-
default: 1
|
|
33
|
+
default: () => 1
|
|
34
34
|
},
|
|
35
35
|
breakpoints: {
|
|
36
36
|
type: Array,
|
|
@@ -46,7 +46,7 @@ var script = defineComponent({
|
|
|
46
46
|
},
|
|
47
47
|
disabled: {
|
|
48
48
|
type: Boolean,
|
|
49
|
-
default: false
|
|
49
|
+
default: () => false
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
emits: ['update:modelValue'],
|
|
@@ -64,13 +64,35 @@ var script = defineComponent({
|
|
|
64
64
|
const rootStyles = computed(() => ['or-range-slider-v3', ...RangeSlider, ...RangeSliderOrientations[props.orientation]]);
|
|
65
65
|
const railStyles = computed(() => ['or-range-slider-rail-v3', ...RangeSliderRail, ...RangeSliderRailOrientations[props.orientation]]);
|
|
66
66
|
const offsetStyles = computed(() => [...RangeSliderOffset, ...RangeSliderOffsetOrientations[props.orientation]]);
|
|
67
|
-
const offsetComputedStyles = computed(() =>
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
const offsetComputedStyles = computed(() => {
|
|
68
|
+
switch (props.orientation) {
|
|
69
|
+
case SliderOrientation.Horizontal:
|
|
70
|
+
case SliderOrientation.HorizontalReversed:
|
|
71
|
+
return {
|
|
72
|
+
width: `${internalModelValueFrom.value * 100}%`
|
|
73
|
+
};
|
|
74
|
+
case SliderOrientation.Vertical:
|
|
75
|
+
case SliderOrientation.VerticalReversed:
|
|
76
|
+
return {
|
|
77
|
+
height: `${internalModelValueFrom.value * 100}%`
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
});
|
|
70
81
|
const trackStyles = computed(() => [...RangeSliderTrack, ...RangeSliderTrackColors[props.color]]);
|
|
71
|
-
const trackComputedStyles = computed(() =>
|
|
72
|
-
|
|
73
|
-
|
|
82
|
+
const trackComputedStyles = computed(() => {
|
|
83
|
+
switch (props.orientation) {
|
|
84
|
+
case SliderOrientation.Horizontal:
|
|
85
|
+
case SliderOrientation.HorizontalReversed:
|
|
86
|
+
return {
|
|
87
|
+
width: `${(internalModelValueTo.value - internalModelValueFrom.value) * 100}%`
|
|
88
|
+
};
|
|
89
|
+
case SliderOrientation.Vertical:
|
|
90
|
+
case SliderOrientation.VerticalReversed:
|
|
91
|
+
return {
|
|
92
|
+
height: `${(internalModelValueTo.value - internalModelValueFrom.value) * 100}%`
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
});
|
|
74
96
|
const thumbStyles = computed(() => ['or-range-slider-thumb-v3', ...RangeSliderThumb, ...RangeSliderThumbColors[props.color]]);
|
|
75
97
|
const breakpointMarkStyles = computed(() => [...RangeSliderBreakpointMark, ...RangeSliderBreakpointMarkColors[props.color]]);
|
|
76
98
|
const labelStyles = computed(() => [...RangeSliderLabel, ...RangeSliderLabelOrientations[props.orientation]]);
|
|
@@ -81,24 +103,66 @@ var script = defineComponent({
|
|
|
81
103
|
});
|
|
82
104
|
const internalModelValueFrom = computed({
|
|
83
105
|
get: () => {
|
|
84
|
-
|
|
106
|
+
let modelValue = 0;
|
|
107
|
+
switch (props.orientation) {
|
|
108
|
+
case SliderOrientation.Horizontal:
|
|
109
|
+
case SliderOrientation.Vertical:
|
|
110
|
+
modelValue = proxyModelValue.value[0];
|
|
111
|
+
break;
|
|
112
|
+
case SliderOrientation.HorizontalReversed:
|
|
113
|
+
case SliderOrientation.VerticalReversed:
|
|
114
|
+
modelValue = proxyModelValue.value[1];
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
return (modelValue - props.minValue) / (props.maxValue - props.minValue);
|
|
85
118
|
},
|
|
86
119
|
set: value => {
|
|
87
120
|
const modelValue = value * (props.maxValue - props.minValue) + props.minValue;
|
|
88
|
-
|
|
121
|
+
const draftProxyModelValue = [internalBreakpoints.value.reduce((a, b) => {
|
|
89
122
|
return Math.abs(a - modelValue) < Math.abs(b - modelValue) ? a : b;
|
|
90
123
|
}), internalModelValueTo.value * (props.maxValue - props.minValue) + props.minValue];
|
|
124
|
+
switch (props.orientation) {
|
|
125
|
+
case SliderOrientation.Horizontal:
|
|
126
|
+
case SliderOrientation.Vertical:
|
|
127
|
+
proxyModelValue.value = draftProxyModelValue;
|
|
128
|
+
break;
|
|
129
|
+
case SliderOrientation.HorizontalReversed:
|
|
130
|
+
case SliderOrientation.VerticalReversed:
|
|
131
|
+
proxyModelValue.value = draftProxyModelValue.reverse();
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
91
134
|
}
|
|
92
135
|
});
|
|
93
136
|
const internalModelValueTo = computed({
|
|
94
137
|
get: () => {
|
|
95
|
-
|
|
138
|
+
let modelValue = 0;
|
|
139
|
+
switch (props.orientation) {
|
|
140
|
+
case SliderOrientation.Horizontal:
|
|
141
|
+
case SliderOrientation.Vertical:
|
|
142
|
+
modelValue = proxyModelValue.value[1];
|
|
143
|
+
break;
|
|
144
|
+
case SliderOrientation.HorizontalReversed:
|
|
145
|
+
case SliderOrientation.VerticalReversed:
|
|
146
|
+
modelValue = proxyModelValue.value[0];
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
return (modelValue - props.minValue) / (props.maxValue - props.minValue);
|
|
96
150
|
},
|
|
97
151
|
set: value => {
|
|
98
152
|
const modelValue = value * (props.maxValue - props.minValue) + props.minValue;
|
|
99
|
-
|
|
153
|
+
const draftProxyModelValue = [internalModelValueFrom.value * (props.maxValue - props.minValue) + props.minValue, internalBreakpoints.value.reduce((a, b) => {
|
|
100
154
|
return Math.abs(a - modelValue) < Math.abs(b - modelValue) ? a : b;
|
|
101
155
|
})];
|
|
156
|
+
switch (props.orientation) {
|
|
157
|
+
case SliderOrientation.Horizontal:
|
|
158
|
+
case SliderOrientation.Vertical:
|
|
159
|
+
proxyModelValue.value = draftProxyModelValue;
|
|
160
|
+
break;
|
|
161
|
+
case SliderOrientation.HorizontalReversed:
|
|
162
|
+
case SliderOrientation.VerticalReversed:
|
|
163
|
+
proxyModelValue.value = draftProxyModelValue.reverse();
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
102
166
|
}
|
|
103
167
|
});
|
|
104
168
|
const internalBreakpoints = computed(() => {
|
|
@@ -108,6 +172,16 @@ var script = defineComponent({
|
|
|
108
172
|
return Array(Math.ceil(Math.abs(props.maxValue - props.minValue) / props.step)).fill(null).map((value, index) => Math.floor((props.minValue + props.step * index) * 1000) / 1000).concat(...props.breakpoints, props.maxValue).sort((a, b) => a - b);
|
|
109
173
|
});
|
|
110
174
|
const railBoundingBox = useElementBounding(rail);
|
|
175
|
+
const tooltipPlacement = computed(() => {
|
|
176
|
+
switch (props.orientation) {
|
|
177
|
+
case SliderOrientation.Horizontal:
|
|
178
|
+
case SliderOrientation.HorizontalReversed:
|
|
179
|
+
return 'top';
|
|
180
|
+
case SliderOrientation.Vertical:
|
|
181
|
+
case SliderOrientation.VerticalReversed:
|
|
182
|
+
return 'right';
|
|
183
|
+
}
|
|
184
|
+
});
|
|
111
185
|
const selectedControl = ref();
|
|
112
186
|
// Handlers
|
|
113
187
|
function onDrag(position, event) {
|
|
@@ -117,12 +191,59 @@ var script = defineComponent({
|
|
|
117
191
|
const totalWidth = railBoundingBox.width.value;
|
|
118
192
|
const totalHeight = railBoundingBox.height.value;
|
|
119
193
|
if (selectedControl.value === 'from') {
|
|
120
|
-
|
|
194
|
+
switch (props.orientation) {
|
|
195
|
+
case SliderOrientation.Horizontal:
|
|
196
|
+
internalModelValueFrom.value = clamp(event.clientX - railBoundingBox.left.value, 0, internalModelValueTo.value * totalWidth) / totalWidth;
|
|
197
|
+
break;
|
|
198
|
+
case SliderOrientation.HorizontalReversed:
|
|
199
|
+
internalModelValueFrom.value = clamp(railBoundingBox.right.value - event.clientX, 0, internalModelValueTo.value * totalWidth) / totalWidth;
|
|
200
|
+
break;
|
|
201
|
+
case SliderOrientation.Vertical:
|
|
202
|
+
internalModelValueFrom.value = clamp(totalHeight - (event.clientY - railBoundingBox.top.value), 0, internalModelValueTo.value * totalHeight) / totalHeight;
|
|
203
|
+
break;
|
|
204
|
+
case SliderOrientation.VerticalReversed:
|
|
205
|
+
internalModelValueFrom.value = clamp(totalHeight - (railBoundingBox.bottom.value - event.clientY), 0, internalModelValueTo.value * totalHeight) / totalHeight;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
121
208
|
} else {
|
|
122
|
-
|
|
209
|
+
switch (props.orientation) {
|
|
210
|
+
case SliderOrientation.Horizontal:
|
|
211
|
+
internalModelValueTo.value = clamp(event.clientX - railBoundingBox.left.value, internalModelValueFrom.value * totalWidth, totalWidth) / totalWidth;
|
|
212
|
+
break;
|
|
213
|
+
case SliderOrientation.HorizontalReversed:
|
|
214
|
+
internalModelValueTo.value = clamp(railBoundingBox.right.value - event.clientX, internalModelValueFrom.value * totalWidth, totalWidth) / totalWidth;
|
|
215
|
+
break;
|
|
216
|
+
case SliderOrientation.Vertical:
|
|
217
|
+
internalModelValueTo.value = clamp(totalHeight - (event.clientY - railBoundingBox.top.value), internalModelValueFrom.value * totalHeight, totalHeight) / totalHeight;
|
|
218
|
+
break;
|
|
219
|
+
case SliderOrientation.VerticalReversed:
|
|
220
|
+
internalModelValueTo.value = clamp(totalHeight - (railBoundingBox.bottom.value - event.clientY), internalModelValueFrom.value * totalHeight, totalHeight) / totalHeight;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
123
223
|
}
|
|
124
224
|
}
|
|
125
225
|
// Methods
|
|
226
|
+
function getBreakpointMarkComputedStyles(breakpoint) {
|
|
227
|
+
switch (props.orientation) {
|
|
228
|
+
case SliderOrientation.Horizontal:
|
|
229
|
+
return {
|
|
230
|
+
left: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
231
|
+
};
|
|
232
|
+
case SliderOrientation.HorizontalReversed:
|
|
233
|
+
return {
|
|
234
|
+
right: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
235
|
+
};
|
|
236
|
+
case SliderOrientation.Vertical:
|
|
237
|
+
return {
|
|
238
|
+
bottom: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
239
|
+
};
|
|
240
|
+
case SliderOrientation.VerticalReversed:
|
|
241
|
+
return {
|
|
242
|
+
top: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Helpers
|
|
126
247
|
function getBreakpointOffset(breakpoint) {
|
|
127
248
|
return (breakpoint - props.minValue) / (props.maxValue - props.minValue);
|
|
128
249
|
}
|
|
@@ -188,8 +309,9 @@ var script = defineComponent({
|
|
|
188
309
|
labelStyles,
|
|
189
310
|
labelMarkStyles,
|
|
190
311
|
proxyModelValue,
|
|
312
|
+
tooltipPlacement,
|
|
191
313
|
selectedControl,
|
|
192
|
-
|
|
314
|
+
getBreakpointMarkComputedStyles,
|
|
193
315
|
isHoveringOffset,
|
|
194
316
|
isHoveringTrack,
|
|
195
317
|
isHoveringFiller,
|
|
@@ -232,8 +354,8 @@ var __vue_render__ = function () {
|
|
|
232
354
|
class: ['relative', 'z-10'],
|
|
233
355
|
attrs: {
|
|
234
356
|
"is-open": !_vm.isDragging && (_vm.isHoveringRail || _vm.isHoveringThumbFrom) || _vm.isDragging && _vm.selectedControl === 'from',
|
|
235
|
-
"content": String(_vm.proxyModelValue[0]),
|
|
236
|
-
"placement": _vm.
|
|
357
|
+
"content": String(_vm.proxyModelValue[_vm.orientation.endsWith('-reversed') ? 1 : 0]),
|
|
358
|
+
"placement": _vm.tooltipPlacement,
|
|
237
359
|
"offset": 24,
|
|
238
360
|
"external-control": true
|
|
239
361
|
}
|
|
@@ -254,8 +376,8 @@ var __vue_render__ = function () {
|
|
|
254
376
|
class: ['relative', 'z-10'],
|
|
255
377
|
attrs: {
|
|
256
378
|
"is-open": !_vm.isDragging && (_vm.isHoveringRail || _vm.isHoveringThumbTo) || _vm.isDragging && _vm.selectedControl === 'to',
|
|
257
|
-
"content": String(_vm.proxyModelValue[1]),
|
|
258
|
-
"placement": _vm.
|
|
379
|
+
"content": String(_vm.proxyModelValue[_vm.orientation.endsWith('-reversed') ? 0 : 1]),
|
|
380
|
+
"placement": _vm.tooltipPlacement,
|
|
259
381
|
"offset": 24,
|
|
260
382
|
"external-control": true
|
|
261
383
|
}
|
|
@@ -272,13 +394,12 @@ var __vue_render__ = function () {
|
|
|
272
394
|
"disabled": _vm.disabled
|
|
273
395
|
}
|
|
274
396
|
}), _vm._v(" "), _vm._l(_vm.breakpoints, function (breakpoint) {
|
|
275
|
-
var _obj;
|
|
276
397
|
return _c('div', {
|
|
277
398
|
key: breakpoint,
|
|
278
399
|
class: _vm.breakpointMarkStyles,
|
|
279
|
-
style:
|
|
400
|
+
style: _vm.getBreakpointMarkComputedStyles(breakpoint),
|
|
280
401
|
attrs: {
|
|
281
|
-
"activated": breakpoint >= _vm.proxyModelValue[0] && breakpoint <= _vm.proxyModelValue[1],
|
|
402
|
+
"activated": breakpoint >= _vm.proxyModelValue[_vm.orientation.endsWith('-reversed') ? 1 : 0] && breakpoint <= _vm.proxyModelValue[_vm.orientation.endsWith('-reversed') ? 0 : 1],
|
|
282
403
|
"disabled": _vm.disabled
|
|
283
404
|
}
|
|
284
405
|
});
|
|
@@ -12,19 +12,28 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
12
12
|
railStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
13
13
|
offsetStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
14
14
|
offsetComputedStyles: import("@vue/composition-api").ComputedRef<{
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
width: string;
|
|
16
|
+
height?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
height: string;
|
|
19
|
+
width?: undefined;
|
|
20
|
+
} | undefined>;
|
|
17
21
|
trackStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
18
22
|
trackComputedStyles: import("@vue/composition-api").ComputedRef<{
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
width: string;
|
|
24
|
+
height?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
height: string;
|
|
27
|
+
width?: undefined;
|
|
28
|
+
} | undefined>;
|
|
21
29
|
thumbStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
22
30
|
breakpointMarkStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
23
31
|
labelStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
24
32
|
labelMarkStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
25
33
|
proxyModelValue: import("../../hooks").UseProxyModelValueReturn<[number, number]>;
|
|
34
|
+
tooltipPlacement: import("@vue/composition-api").ComputedRef<"top" | "right" | undefined>;
|
|
26
35
|
selectedControl: import("@vue/composition-api").Ref<"from" | "to" | undefined>;
|
|
27
|
-
|
|
36
|
+
getBreakpointMarkComputedStyles: (breakpoint: number) => Partial<CSSStyleDeclaration> | undefined;
|
|
28
37
|
isHoveringOffset: import("@vue/composition-api").Ref<boolean>;
|
|
29
38
|
isHoveringTrack: import("@vue/composition-api").Ref<boolean>;
|
|
30
39
|
isHoveringFiller: import("@vue/composition-api").Ref<boolean>;
|
|
@@ -35,19 +44,19 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
35
44
|
}> & import("@vue/composition-api").Data, {}, {}, {
|
|
36
45
|
modelValue: {
|
|
37
46
|
type: PropType<[number, number]>;
|
|
38
|
-
default: undefined;
|
|
47
|
+
default: () => undefined;
|
|
39
48
|
};
|
|
40
49
|
minValue: {
|
|
41
50
|
type: NumberConstructor;
|
|
42
|
-
default:
|
|
51
|
+
default: () => 0;
|
|
43
52
|
};
|
|
44
53
|
maxValue: {
|
|
45
54
|
type: NumberConstructor;
|
|
46
|
-
default:
|
|
55
|
+
default: () => 100;
|
|
47
56
|
};
|
|
48
57
|
step: {
|
|
49
58
|
type: NumberConstructor;
|
|
50
|
-
default:
|
|
59
|
+
default: () => 1;
|
|
51
60
|
};
|
|
52
61
|
breakpoints: {
|
|
53
62
|
type: PropType<number[]>;
|
|
@@ -58,29 +67,29 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
58
67
|
default: () => RangeSliderColor.Primary;
|
|
59
68
|
};
|
|
60
69
|
orientation: {
|
|
61
|
-
type: PropType<"horizontal" | "vertical">;
|
|
70
|
+
type: PropType<"horizontal" | "horizontal-reversed" | "vertical" | "vertical-reversed">;
|
|
62
71
|
default: () => RangeSliderOrientation.Horizontal;
|
|
63
72
|
};
|
|
64
73
|
disabled: {
|
|
65
74
|
type: BooleanConstructor;
|
|
66
|
-
default:
|
|
75
|
+
default: () => false;
|
|
67
76
|
};
|
|
68
77
|
}, import("@vue/composition-api").ExtractPropTypes<{
|
|
69
78
|
modelValue: {
|
|
70
79
|
type: PropType<[number, number]>;
|
|
71
|
-
default: undefined;
|
|
80
|
+
default: () => undefined;
|
|
72
81
|
};
|
|
73
82
|
minValue: {
|
|
74
83
|
type: NumberConstructor;
|
|
75
|
-
default:
|
|
84
|
+
default: () => 0;
|
|
76
85
|
};
|
|
77
86
|
maxValue: {
|
|
78
87
|
type: NumberConstructor;
|
|
79
|
-
default:
|
|
88
|
+
default: () => 100;
|
|
80
89
|
};
|
|
81
90
|
step: {
|
|
82
91
|
type: NumberConstructor;
|
|
83
|
-
default:
|
|
92
|
+
default: () => 1;
|
|
84
93
|
};
|
|
85
94
|
breakpoints: {
|
|
86
95
|
type: PropType<number[]>;
|
|
@@ -91,12 +100,12 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
91
100
|
default: () => RangeSliderColor.Primary;
|
|
92
101
|
};
|
|
93
102
|
orientation: {
|
|
94
|
-
type: PropType<"horizontal" | "vertical">;
|
|
103
|
+
type: PropType<"horizontal" | "horizontal-reversed" | "vertical" | "vertical-reversed">;
|
|
95
104
|
default: () => RangeSliderOrientation.Horizontal;
|
|
96
105
|
};
|
|
97
106
|
disabled: {
|
|
98
107
|
type: BooleanConstructor;
|
|
99
|
-
default:
|
|
108
|
+
default: () => false;
|
|
100
109
|
};
|
|
101
110
|
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
|
|
102
111
|
modelValue: [number, number];
|
|
@@ -105,7 +114,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
105
114
|
step: number;
|
|
106
115
|
breakpoints: number[];
|
|
107
116
|
color: "primary" | "secondary";
|
|
108
|
-
orientation: "horizontal" | "vertical";
|
|
117
|
+
orientation: "horizontal" | "horizontal-reversed" | "vertical" | "vertical-reversed";
|
|
109
118
|
disabled: boolean;
|
|
110
119
|
} & {} & {
|
|
111
120
|
[x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
|
|
@@ -121,19 +130,28 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
121
130
|
railStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
122
131
|
offsetStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
123
132
|
offsetComputedStyles: import("@vue/composition-api").ComputedRef<{
|
|
124
|
-
|
|
125
|
-
|
|
133
|
+
width: string;
|
|
134
|
+
height?: undefined;
|
|
135
|
+
} | {
|
|
136
|
+
height: string;
|
|
137
|
+
width?: undefined;
|
|
138
|
+
} | undefined>;
|
|
126
139
|
trackStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
127
140
|
trackComputedStyles: import("@vue/composition-api").ComputedRef<{
|
|
128
|
-
|
|
129
|
-
|
|
141
|
+
width: string;
|
|
142
|
+
height?: undefined;
|
|
143
|
+
} | {
|
|
144
|
+
height: string;
|
|
145
|
+
width?: undefined;
|
|
146
|
+
} | undefined>;
|
|
130
147
|
thumbStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
131
148
|
breakpointMarkStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
132
149
|
labelStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
133
150
|
labelMarkStyles: import("@vue/composition-api").ComputedRef<string[]>;
|
|
134
151
|
proxyModelValue: import("../../hooks").UseProxyModelValueReturn<[number, number]>;
|
|
152
|
+
tooltipPlacement: import("@vue/composition-api").ComputedRef<"top" | "right" | undefined>;
|
|
135
153
|
selectedControl: import("@vue/composition-api").Ref<"from" | "to" | undefined>;
|
|
136
|
-
|
|
154
|
+
getBreakpointMarkComputedStyles: (breakpoint: number) => Partial<CSSStyleDeclaration> | undefined;
|
|
137
155
|
isHoveringOffset: import("@vue/composition-api").Ref<boolean>;
|
|
138
156
|
isHoveringTrack: import("@vue/composition-api").Ref<boolean>;
|
|
139
157
|
isHoveringFiller: import("@vue/composition-api").Ref<boolean>;
|
|
@@ -148,7 +166,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
148
166
|
step: number;
|
|
149
167
|
breakpoints: number[];
|
|
150
168
|
color: "primary" | "secondary";
|
|
151
|
-
orientation: "horizontal" | "vertical";
|
|
169
|
+
orientation: "horizontal" | "horizontal-reversed" | "vertical" | "vertical-reversed";
|
|
152
170
|
disabled: boolean;
|
|
153
171
|
} & {} & {
|
|
154
172
|
[x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
|
|
@@ -159,7 +177,7 @@ declare const _default: import("vue").ComponentOptions<import("vue").default, im
|
|
|
159
177
|
step: number;
|
|
160
178
|
breakpoints: number[];
|
|
161
179
|
color: "primary" | "secondary";
|
|
162
|
-
orientation: "horizontal" | "vertical";
|
|
180
|
+
orientation: "horizontal" | "horizontal-reversed" | "vertical" | "vertical-reversed";
|
|
163
181
|
disabled: boolean;
|
|
164
182
|
}, true>);
|
|
165
183
|
export default _default;
|
|
@@ -9,10 +9,20 @@ const RangeSliderOrientations = {
|
|
|
9
9
|
'layout-column',
|
|
10
10
|
// Box
|
|
11
11
|
'w-full'],
|
|
12
|
+
[SliderOrientation.HorizontalReversed]: [
|
|
13
|
+
// Layout
|
|
14
|
+
'layout-column',
|
|
15
|
+
// Box
|
|
16
|
+
'w-full'],
|
|
12
17
|
[SliderOrientation.Vertical]: [
|
|
13
18
|
// Layout
|
|
14
19
|
'layout-row',
|
|
15
20
|
// Box
|
|
21
|
+
'h-full'],
|
|
22
|
+
[SliderOrientation.VerticalReversed]: [
|
|
23
|
+
// Layout
|
|
24
|
+
'layout-row',
|
|
25
|
+
// Box
|
|
16
26
|
'h-full']
|
|
17
27
|
};
|
|
18
28
|
const RangeSliderRail = [
|
|
@@ -32,12 +42,26 @@ const RangeSliderRailOrientations = {
|
|
|
32
42
|
'w-full', 'h-xs',
|
|
33
43
|
// Spacing
|
|
34
44
|
'mx-0', 'my-md+'],
|
|
45
|
+
[SliderOrientation.HorizontalReversed]: [
|
|
46
|
+
// Layout
|
|
47
|
+
'layout-row-reverse',
|
|
48
|
+
// Box
|
|
49
|
+
'w-full', 'h-xs',
|
|
50
|
+
// Spacing
|
|
51
|
+
'mx-0', 'my-md+'],
|
|
35
52
|
[SliderOrientation.Vertical]: [
|
|
36
53
|
// Layout
|
|
37
54
|
'layout-column-reverse items-center',
|
|
38
55
|
// Box
|
|
39
56
|
'w-xs', 'h-full',
|
|
40
57
|
// Spacing
|
|
58
|
+
'mx-md+', 'my-0'],
|
|
59
|
+
[SliderOrientation.VerticalReversed]: [
|
|
60
|
+
// Layout
|
|
61
|
+
'layout-column items-center',
|
|
62
|
+
// Box
|
|
63
|
+
'w-xs', 'h-full',
|
|
64
|
+
// Spacing
|
|
41
65
|
'mx-md+', 'my-0']
|
|
42
66
|
};
|
|
43
67
|
const RangeSliderOffset = [];
|
|
@@ -45,8 +69,14 @@ const RangeSliderOffsetOrientations = {
|
|
|
45
69
|
[SliderOrientation.Horizontal]: [
|
|
46
70
|
// Box
|
|
47
71
|
'h-full'],
|
|
72
|
+
[SliderOrientation.HorizontalReversed]: [
|
|
73
|
+
// Box
|
|
74
|
+
'h-full'],
|
|
48
75
|
[SliderOrientation.Vertical]: [
|
|
49
76
|
// Box
|
|
77
|
+
'w-full'],
|
|
78
|
+
[SliderOrientation.VerticalReversed]: [
|
|
79
|
+
// Box
|
|
50
80
|
'w-full']
|
|
51
81
|
};
|
|
52
82
|
const RangeSliderTrack = [
|
|
@@ -121,10 +151,20 @@ const RangeSliderLabelOrientations = {
|
|
|
121
151
|
'layout-row',
|
|
122
152
|
// Box
|
|
123
153
|
'w-full'],
|
|
154
|
+
[SliderOrientation.HorizontalReversed]: [
|
|
155
|
+
// Layout
|
|
156
|
+
'layout-row-reverse',
|
|
157
|
+
// Box
|
|
158
|
+
'w-full'],
|
|
124
159
|
[SliderOrientation.Vertical]: [
|
|
125
160
|
// Layout
|
|
126
161
|
'layout-column-reverse items-center',
|
|
127
162
|
// Box
|
|
163
|
+
'h-full'],
|
|
164
|
+
[SliderOrientation.VerticalReversed]: [
|
|
165
|
+
// Layout
|
|
166
|
+
'layout-column items-center',
|
|
167
|
+
// Box
|
|
128
168
|
'h-full']
|
|
129
169
|
};
|
|
130
170
|
const RangeSliderLabelMark = [
|
|
@@ -18,19 +18,19 @@ var script = defineComponent({
|
|
|
18
18
|
props: {
|
|
19
19
|
modelValue: {
|
|
20
20
|
type: Number,
|
|
21
|
-
default: undefined
|
|
21
|
+
default: () => undefined
|
|
22
22
|
},
|
|
23
23
|
minValue: {
|
|
24
24
|
type: Number,
|
|
25
|
-
default: 0
|
|
25
|
+
default: () => 0
|
|
26
26
|
},
|
|
27
27
|
maxValue: {
|
|
28
28
|
type: Number,
|
|
29
|
-
default: 100
|
|
29
|
+
default: () => 100
|
|
30
30
|
},
|
|
31
31
|
step: {
|
|
32
32
|
type: Number,
|
|
33
|
-
default: 1
|
|
33
|
+
default: () => 1
|
|
34
34
|
},
|
|
35
35
|
breakpoints: {
|
|
36
36
|
type: Array,
|
|
@@ -46,7 +46,7 @@ var script = defineComponent({
|
|
|
46
46
|
},
|
|
47
47
|
disabled: {
|
|
48
48
|
type: Boolean,
|
|
49
|
-
default: false
|
|
49
|
+
default: () => false
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
emits: ['update:modelValue'],
|
|
@@ -60,9 +60,20 @@ var script = defineComponent({
|
|
|
60
60
|
const rootStyles = computed(() => ['or-slider-v3', ...Slider, ...SliderOrientations[props.orientation]]);
|
|
61
61
|
const railStyles = computed(() => ['or-slider-rail-v3', ...SliderRail, ...SliderRailOrientations[props.orientation]]);
|
|
62
62
|
const trackStyles = computed(() => [...SliderTrack, ...SliderTrackColors[props.color]]);
|
|
63
|
-
const trackComputedStyles = computed(() =>
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const trackComputedStyles = computed(() => {
|
|
64
|
+
switch (props.orientation) {
|
|
65
|
+
case SliderOrientation.Horizontal:
|
|
66
|
+
case SliderOrientation.HorizontalReversed:
|
|
67
|
+
return {
|
|
68
|
+
width: `${internalModelValue.value * 100}%`
|
|
69
|
+
};
|
|
70
|
+
case SliderOrientation.Vertical:
|
|
71
|
+
case SliderOrientation.VerticalReversed:
|
|
72
|
+
return {
|
|
73
|
+
height: `${internalModelValue.value * 100}%`
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
});
|
|
66
77
|
const thumbStyles = computed(() => ['or-slider-thumb-v3', ...SliderThumb, ...SliderThumbColors[props.color]]);
|
|
67
78
|
const breakpointMarkStyles = computed(() => [...SliderBreakpointMark, ...SliderBreakpointMarkColors[props.color]]);
|
|
68
79
|
const labelStyles = computed(() => [...SliderLabel, ...SliderLabelOrientations[props.orientation]]);
|
|
@@ -89,6 +100,16 @@ var script = defineComponent({
|
|
|
89
100
|
return Array(Math.ceil(Math.abs(props.maxValue - props.minValue) / props.step)).fill(null).map((value, index) => Math.floor((props.minValue + props.step * index) * 1000) / 1000).concat(...props.breakpoints, props.maxValue).sort((a, b) => a - b);
|
|
90
101
|
});
|
|
91
102
|
const railBoundingBox = useElementBounding(rail);
|
|
103
|
+
const tooltipPlacement = computed(() => {
|
|
104
|
+
switch (props.orientation) {
|
|
105
|
+
case SliderOrientation.Horizontal:
|
|
106
|
+
case SliderOrientation.HorizontalReversed:
|
|
107
|
+
return 'top';
|
|
108
|
+
case SliderOrientation.Vertical:
|
|
109
|
+
case SliderOrientation.VerticalReversed:
|
|
110
|
+
return 'right';
|
|
111
|
+
}
|
|
112
|
+
});
|
|
92
113
|
// Handlers
|
|
93
114
|
function onDrag(position, event) {
|
|
94
115
|
if (props.disabled) {
|
|
@@ -96,9 +117,43 @@ var script = defineComponent({
|
|
|
96
117
|
}
|
|
97
118
|
const totalWidth = railBoundingBox.width.value;
|
|
98
119
|
const totalHeight = railBoundingBox.height.value;
|
|
99
|
-
|
|
120
|
+
switch (props.orientation) {
|
|
121
|
+
case SliderOrientation.Horizontal:
|
|
122
|
+
internalModelValue.value = clamp(event.clientX - railBoundingBox.left.value, 0, totalWidth) / totalWidth;
|
|
123
|
+
break;
|
|
124
|
+
case SliderOrientation.HorizontalReversed:
|
|
125
|
+
internalModelValue.value = clamp(railBoundingBox.right.value - event.clientX, 0, totalWidth) / totalWidth;
|
|
126
|
+
break;
|
|
127
|
+
case SliderOrientation.Vertical:
|
|
128
|
+
internalModelValue.value = clamp(totalHeight - (event.clientY - railBoundingBox.top.value), 0, totalHeight) / totalHeight;
|
|
129
|
+
break;
|
|
130
|
+
case SliderOrientation.VerticalReversed:
|
|
131
|
+
internalModelValue.value = clamp(totalHeight - (railBoundingBox.bottom.value - event.clientY), 0, totalHeight) / totalHeight;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
100
134
|
}
|
|
101
135
|
// Methods
|
|
136
|
+
function getBreakpointMarkComputedStyles(breakpoint) {
|
|
137
|
+
switch (props.orientation) {
|
|
138
|
+
case SliderOrientation.Horizontal:
|
|
139
|
+
return {
|
|
140
|
+
left: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
141
|
+
};
|
|
142
|
+
case SliderOrientation.HorizontalReversed:
|
|
143
|
+
return {
|
|
144
|
+
right: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
145
|
+
};
|
|
146
|
+
case SliderOrientation.Vertical:
|
|
147
|
+
return {
|
|
148
|
+
bottom: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
149
|
+
};
|
|
150
|
+
case SliderOrientation.VerticalReversed:
|
|
151
|
+
return {
|
|
152
|
+
top: `${getBreakpointOffset(breakpoint) * 100}%`
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Helpers
|
|
102
157
|
function getBreakpointOffset(breakpoint) {
|
|
103
158
|
return (breakpoint - props.minValue) / (props.maxValue - props.minValue);
|
|
104
159
|
}
|
|
@@ -139,7 +194,8 @@ var script = defineComponent({
|
|
|
139
194
|
labelStyles,
|
|
140
195
|
labelMarkStyles,
|
|
141
196
|
proxyModelValue,
|
|
142
|
-
|
|
197
|
+
tooltipPlacement,
|
|
198
|
+
getBreakpointMarkComputedStyles,
|
|
143
199
|
isHovering,
|
|
144
200
|
isDragging
|
|
145
201
|
};
|
|
@@ -177,7 +233,7 @@ var __vue_render__ = function () {
|
|
|
177
233
|
attrs: {
|
|
178
234
|
"is-open": _vm.isHovering || _vm.isDragging,
|
|
179
235
|
"content": String(_vm.proxyModelValue),
|
|
180
|
-
"placement": _vm.
|
|
236
|
+
"placement": _vm.tooltipPlacement,
|
|
181
237
|
"offset": 24,
|
|
182
238
|
"external-control": true
|
|
183
239
|
}
|
|
@@ -188,11 +244,10 @@ var __vue_render__ = function () {
|
|
|
188
244
|
"disabled": _vm.disabled
|
|
189
245
|
}
|
|
190
246
|
})]), _vm._v(" "), _vm._l(_vm.breakpoints, function (breakpoint) {
|
|
191
|
-
var _obj;
|
|
192
247
|
return _c('div', {
|
|
193
248
|
key: breakpoint,
|
|
194
249
|
class: _vm.breakpointMarkStyles,
|
|
195
|
-
style:
|
|
250
|
+
style: _vm.getBreakpointMarkComputedStyles(breakpoint),
|
|
196
251
|
attrs: {
|
|
197
252
|
"activated": breakpoint <= _vm.proxyModelValue,
|
|
198
253
|
"disabled": _vm.disabled
|