@opensig/opendesign
Version:
41 lines (40 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const dayjs = require("dayjs");
const types = require("./types.js");
const isTimeBefore = (a, b) => dayjs(types.TIME_PREFIX + a).isBefore(dayjs(types.TIME_PREFIX + b));
const isTimeAfter = (a, b) => dayjs(types.TIME_PREFIX + a).isAfter(dayjs(types.TIME_PREFIX + b));
function useTimeRangeConstraints(params) {
const { startTime, endTime, format, hourStep, minuteStep, secondStep, enabled } = params;
const smallestUnit = vue.computed(() => {
var _a;
const fmt = ((_a = vue.toValue(format)) == null ? void 0 : _a.toLowerCase()) ?? "hh:mm:ss";
if (fmt.includes("ss")) return "second";
if (fmt.includes("mm")) return "minute";
return "hour";
});
const smallestStep = vue.computed(
() => ({
second: vue.toValue(secondStep) ?? 1,
minute: vue.toValue(minuteStep) ?? 1,
hour: vue.toValue(hourStep) ?? 1
})[smallestUnit.value]
);
const maxStartTime = vue.computed(() => {
if (enabled !== void 0 && !vue.toValue(enabled)) return void 0;
const end = vue.toValue(endTime);
if (!end) return void 0;
return dayjs(types.TIME_PREFIX + end).subtract(smallestStep.value, smallestUnit.value).format("HH:mm:ss");
});
const minEndTime = vue.computed(() => {
if (enabled !== void 0 && !vue.toValue(enabled)) return void 0;
const start = vue.toValue(startTime);
if (!start) return void 0;
return dayjs(types.TIME_PREFIX + start).add(smallestStep.value, smallestUnit.value).format("HH:mm:ss");
});
return { maxStartTime, minEndTime };
}
exports.isTimeAfter = isTimeAfter;
exports.isTimeBefore = isTimeBefore;
exports.useTimeRangeConstraints = useTimeRangeConstraints;