@opensig/opendesign
Version:
42 lines (41 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const useStops = (props, initData, minValue, maxValue) => {
const stops = vue.computed(() => {
if (!props.showStops || props.min > props.max) {
return [];
}
if (props.step === 0) {
return [];
}
const stopCount = Math.ceil((props.max - props.min) / props.step);
const stepWidth = 100 * props.step / (props.max - props.min);
const result = Array.from({ length: stopCount + 1 }).map((_, index) => index * stepWidth);
if (props.range) {
return result.map((step) => {
const notReached = step < 100 * (minValue.value - props.min) / (props.max - props.min) || step > 100 * (maxValue.value - props.min) / (props.max - props.min);
return {
step,
reached: !notReached
};
});
} else {
return result.map((step) => {
const notReached = step > 100 * (initData.firstBtnVal - props.min) / (props.max - props.min);
return {
step,
reached: !notReached
};
});
}
});
const getStopStyle = (position) => {
return props.direction === "v" ? { bottom: `${position}%` } : { left: `${position}%` };
};
return {
stops,
getStopStyle
};
};
exports.useStops = useStops;