@zag-js/date-utils
Version:
Date utilities for zag.js
60 lines (58 loc) • 2.54 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/assertion.ts
var assertion_exports = {};
__export(assertion_exports, {
isDateEqual: () => isDateEqual,
isDateOutsideRange: () => isDateOutsideRange,
isDateUnavailable: () => isDateUnavailable,
isNextRangeInvalid: () => isNextRangeInvalid,
isPreviousRangeInvalid: () => isPreviousRangeInvalid
});
module.exports = __toCommonJS(assertion_exports);
var import_date = require("@internationalized/date");
function isDateEqual(dateA, dateB) {
if (dateA == null || dateB == null) return dateA === dateB;
if (!("hour" in dateA) && !("hour" in dateB)) return (0, import_date.isSameDay)(dateA, dateB);
return (0, import_date.toCalendarDateTime)(dateA).compare((0, import_date.toCalendarDateTime)(dateB)) === 0;
}
function isDateUnavailable(date, isUnavailable, locale, minValue, maxValue) {
if (!date) return false;
if (isUnavailable?.(date, locale)) return true;
return isDateOutsideRange(date, minValue, maxValue);
}
function isDateOutsideRange(date, startDate, endDate) {
return startDate != null && date.compare(startDate) < 0 || endDate != null && date.compare(endDate) > 0;
}
function isPreviousRangeInvalid(startDate, minValue, maxValue) {
const prevDate = startDate.subtract({ days: 1 });
return (0, import_date.isSameDay)(prevDate, startDate) || isDateOutsideRange(prevDate, minValue, maxValue);
}
function isNextRangeInvalid(endDate, minValue, maxValue) {
const nextDate = endDate.add({ days: 1 });
return (0, import_date.isSameDay)(nextDate, endDate) || isDateOutsideRange(nextDate, minValue, maxValue);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
isDateEqual,
isDateOutsideRange,
isDateUnavailable,
isNextRangeInvalid,
isPreviousRangeInvalid
});