UNPKG

@opensig/opendesign

Version:

41 lines (40 loc) 1.76 kB
"use strict"; 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;