@blueprintjs/datetime
Version:
Components for interacting with dates and times
54 lines • 1.86 kB
JavaScript
/* !
* (c) Copyright 2024 Palantir Technologies Inc. All rights reserved.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEntireInputSelected = exports.clampDate = exports.shiftDateByArrowKey = exports.shiftDateByWeeks = exports.shiftDateByDays = exports.getTodayAtMidnight = void 0;
const DAY_IN_MILLIS = 1000 * 60 * 60 * 24;
const WEEK_IN_MILLIS = 7 * DAY_IN_MILLIS;
function getTodayAtMidnight() {
return new Date(new Date().setHours(0, 0, 0, 0));
}
exports.getTodayAtMidnight = getTodayAtMidnight;
function shiftDateByDays(date, days) {
return new Date(date.valueOf() + days * DAY_IN_MILLIS);
}
exports.shiftDateByDays = shiftDateByDays;
function shiftDateByWeeks(date, weeks) {
return new Date(date.valueOf() + weeks * WEEK_IN_MILLIS);
}
exports.shiftDateByWeeks = shiftDateByWeeks;
function shiftDateByArrowKey(date, key) {
switch (key) {
case "ArrowUp":
return shiftDateByWeeks(date, -1);
case "ArrowDown":
return shiftDateByWeeks(date, 1);
case "ArrowLeft":
return shiftDateByDays(date, -1);
case "ArrowRight":
return shiftDateByDays(date, 1);
default:
return date;
}
}
exports.shiftDateByArrowKey = shiftDateByArrowKey;
function clampDate(date, minDate, maxDate) {
let result = date;
if (minDate != null && date < minDate) {
result = minDate;
}
if (maxDate != null && date > maxDate) {
result = maxDate;
}
return result;
}
exports.clampDate = clampDate;
function isEntireInputSelected(element) {
if (element == null) {
return false;
}
return element.selectionStart === 0 && element.selectionEnd === element.value.length;
}
exports.isEntireInputSelected = isEntireInputSelected;
//# sourceMappingURL=dateRangeInputUilts.js.map
;