@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.
Files changed (48) hide show
  1. package/dist/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.js +146 -25
  2. package/dist/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.vue.d.ts +43 -25
  3. package/dist/bundled/v2/components/OrRangeSliderV3/styles.js +40 -0
  4. package/dist/bundled/v2/components/OrSliderV3/OrSlider.js +68 -13
  5. package/dist/bundled/v2/components/OrSliderV3/OrSlider.vue.d.ts +31 -21
  6. package/dist/bundled/v2/components/OrSliderV3/props.d.ts +3 -1
  7. package/dist/bundled/v2/components/OrSliderV3/props.js +2 -0
  8. package/dist/bundled/v2/components/OrSliderV3/styles.js +34 -0
  9. package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.js +1 -1
  10. package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.vue.d.ts +27 -18
  11. package/dist/bundled/v3/components/OrRangeSliderV3/index.js +2 -2
  12. package/dist/bundled/v3/components/OrRangeSliderV3/props.js +1 -1
  13. package/dist/bundled/v3/components/OrRangeSliderV3/styles.js +2 -2
  14. package/dist/bundled/v3/components/{OrRangeSliderV3-f8024c15.js → OrRangeSliderV3-fac9697f.js} +187 -27
  15. package/dist/bundled/v3/components/OrSliderV3/OrSlider.js +1 -1
  16. package/dist/bundled/v3/components/OrSliderV3/OrSlider.vue.d.ts +21 -16
  17. package/dist/bundled/v3/components/OrSliderV3/index.js +1 -1
  18. package/dist/bundled/v3/components/OrSliderV3/props.d.ts +3 -1
  19. package/dist/bundled/v3/components/OrSliderV3/props.js +1 -1
  20. package/dist/bundled/v3/components/OrSliderV3/styles.js +1 -1
  21. package/dist/bundled/v3/components/{OrSliderV3-b69331d1.js → OrSliderV3-6d75304d.js} +104 -14
  22. package/dist/bundled/v3/components/index.js +2 -2
  23. package/dist/bundled/v3/index.js +2 -2
  24. package/dist/esm/v2/{OrRangeSlider-2fba4c60.js → OrRangeSlider-7a377862.js} +187 -26
  25. package/dist/esm/v2/{OrSlider-dd60a4a1.js → OrSlider-dd967591.js} +3 -4
  26. package/dist/esm/v2/{OrSlider.vue_rollup-plugin-vue_script-eadc5fc6.js → OrSlider.vue_rollup-plugin-vue_script-79f356ca.js} +102 -10
  27. package/dist/esm/v2/components/index.js +3 -3
  28. package/dist/esm/v2/components/or-range-slider-v3/OrRangeSlider.vue.d.ts +43 -25
  29. package/dist/esm/v2/components/or-range-slider-v3/index.js +2 -2
  30. package/dist/esm/v2/components/or-slider-v3/OrSlider.vue.d.ts +31 -21
  31. package/dist/esm/v2/components/or-slider-v3/index.js +2 -2
  32. package/dist/esm/v2/components/or-slider-v3/props.d.ts +3 -1
  33. package/dist/esm/v2/index.js +3 -3
  34. package/dist/esm/v3/{OrRangeSlider-1c6ff524.js → OrRangeSlider-cd72332c.js} +187 -27
  35. package/dist/esm/v3/{OrSlider-654bd19f.js → OrSlider-ba7aff7c.js} +104 -14
  36. package/dist/esm/v3/components/index.js +2 -2
  37. package/dist/esm/v3/components/or-range-slider-v3/OrRangeSlider.vue.d.ts +27 -18
  38. package/dist/esm/v3/components/or-range-slider-v3/index.js +2 -2
  39. package/dist/esm/v3/components/or-slider-v3/OrSlider.vue.d.ts +21 -16
  40. package/dist/esm/v3/components/or-slider-v3/index.js +1 -1
  41. package/dist/esm/v3/components/or-slider-v3/props.d.ts +3 -1
  42. package/dist/esm/v3/index.js +2 -2
  43. package/package.json +2 -2
  44. package/src/components/or-range-slider-v3/OrRangeSlider.vue +154 -28
  45. package/src/components/or-range-slider-v3/styles.ts +68 -0
  46. package/src/components/or-slider-v3/OrSlider.vue +66 -14
  47. package/src/components/or-slider-v3/props.ts +2 -0
  48. 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
- [props.orientation === SliderOrientation.Horizontal ? 'width' : 'height']: `${internalModelValueFrom.value * 100}%`
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
- [props.orientation === SliderOrientation.Horizontal ? 'width' : 'height']: `${(internalModelValueTo.value - internalModelValueFrom.value) * 100}%`
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
- return (proxyModelValue.value[0] - props.minValue) / (props.maxValue - props.minValue);
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
- proxyModelValue.value = [internalBreakpoints.value.reduce((a, b) => {
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
- return (proxyModelValue.value[1] - props.minValue) / (props.maxValue - props.minValue);
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
- proxyModelValue.value = [internalModelValueFrom.value * (props.maxValue - props.minValue) + props.minValue, internalBreakpoints.value.reduce((a, b) => {
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
- internalModelValueFrom.value = props.orientation === SliderOrientation.Horizontal ? clamp(event.clientX - railBoundingBox.left.value, 0, internalModelValueTo.value * totalWidth) / totalWidth : clamp(totalHeight - (event.clientY - railBoundingBox.top.value), 0, internalModelValueTo.value * totalHeight) / totalHeight;
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
- internalModelValueTo.value = props.orientation === SliderOrientation.Horizontal ? clamp(event.clientX - railBoundingBox.left.value, internalModelValueFrom.value * totalWidth, totalWidth) / totalWidth : clamp(totalHeight - (event.clientY - railBoundingBox.top.value), internalModelValueFrom.value * totalHeight, totalHeight) / totalHeight;
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
- getBreakpointOffset,
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.orientation === 'horizontal' ? 'top' : 'right',
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.orientation === 'horizontal' ? 'top' : 'right',
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: (_obj = {}, _obj[_vm.orientation === 'horizontal' ? 'left' : 'bottom'] = _vm.getBreakpointOffset(breakpoint) * 100 + "%", _obj),
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
- [x: string]: string;
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
- [x: string]: string;
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
- getBreakpointOffset: (breakpoint: number) => number;
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: number;
51
+ default: () => 0;
43
52
  };
44
53
  maxValue: {
45
54
  type: NumberConstructor;
46
- default: number;
55
+ default: () => 100;
47
56
  };
48
57
  step: {
49
58
  type: NumberConstructor;
50
- default: number;
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: boolean;
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: number;
84
+ default: () => 0;
76
85
  };
77
86
  maxValue: {
78
87
  type: NumberConstructor;
79
- default: number;
88
+ default: () => 100;
80
89
  };
81
90
  step: {
82
91
  type: NumberConstructor;
83
- default: number;
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: boolean;
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
- [x: string]: string;
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
- [x: string]: string;
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
- getBreakpointOffset: (breakpoint: number) => number;
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
- [props.orientation === SliderOrientation.Horizontal ? 'width' : 'height']: `${internalModelValue.value * 100}%`
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
- internalModelValue.value = props.orientation === SliderOrientation.Horizontal ? clamp(event.clientX - railBoundingBox.left.value, 0, totalWidth) / totalWidth : clamp(totalHeight - (event.clientY - railBoundingBox.top.value), 0, totalHeight) / totalHeight;
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
- getBreakpointOffset,
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.orientation === 'horizontal' ? 'top' : 'right',
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: (_obj = {}, _obj[_vm.orientation === 'horizontal' ? 'left' : 'bottom'] = _vm.getBreakpointOffset(breakpoint) * 100 + "%", _obj),
250
+ style: _vm.getBreakpointMarkComputedStyles(breakpoint),
196
251
  attrs: {
197
252
  "activated": breakpoint <= _vm.proxyModelValue,
198
253
  "disabled": _vm.disabled