UNPKG

@blueprintjs/datetime

Version:

Components for interacting with dates and times

54 lines 1.86 kB
"use strict"; /* ! * (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