useSlicingSliderStore.js
984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { defineStore } from 'pinia';
import { ref, watch } from 'vue';
export const useSlicingSliderStore = defineStore('slicing-slider', () => {
const maximum = ref(200);
const minimum = ref(0);
const value = ref([0, 200]);
const unit = ref('mm');
const setRange = (max, min) => {
maximum.value = max;
minimum.value = min;
};
const setValue = (val) => {
value.value = val;
};
watch(
() => maximum.value,
() => {
value.value =
maximum.value > minimum.value ? [minimum.value, maximum.value] : [maximum.value, minimum.value];
}
);
watch(
() => minimum.value,
() => {
value.value =
maximum.value > minimum.value ? [minimum.value, maximum.value] : [maximum.value, minimum.value];
}
);
return {
maximum,
minimum,
value,
unit,
setValue,
setRange
};
});