2a5941ecc898feb87d407cd92180321c7176d6ac968ddab1b3cb89e576dd1ad785a932bbb3c84692a7c1803cdca74084a97d41a9cc5de3012e4566a6811852 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import { computed } from 'vue';
  2. const useStops = (props, initData, minValue, maxValue) => {
  3. const stops = computed(() => {
  4. if (!props.showStops || props.min > props.max)
  5. return [];
  6. if (props.step === 0) {
  7. return [];
  8. }
  9. const stopCount = (props.max - props.min) / props.step;
  10. const stepWidth = 100 * props.step / (props.max - props.min);
  11. const result = Array.from({ length: stopCount - 1 }).map((_, index) => (index + 1) * stepWidth);
  12. if (props.range) {
  13. return result.filter((step) => {
  14. return step < 100 * (minValue.value - props.min) / (props.max - props.min) || step > 100 * (maxValue.value - props.min) / (props.max - props.min);
  15. });
  16. } else {
  17. return result.filter((step) => step > 100 * (initData.firstValue - props.min) / (props.max - props.min));
  18. }
  19. });
  20. const getStopStyle = (position) => {
  21. return props.vertical ? { bottom: `${position}%` } : { left: `${position}%` };
  22. };
  23. return {
  24. stops,
  25. getStopStyle
  26. };
  27. };
  28. export { useStops };
  29. //# sourceMappingURL=use-stops.mjs.map