UNPKG

@uiowa/date-range-picker

Version:
156 lines 13.7 kB
/** * DateRange Type represents start date and end date. */ export class DateRange { /** * Examples: ```typescript const d1 = new DateRange(); const d2 = new DateRange(new Date(), new Date(2018, 9, 10)); ``` * @param start [Optional] Start Date. Default: null. * @param end [Optional] End Date. Default: null */ constructor(start = null, end = null) { this.start = start; this.end = end; } /** * Examples: ```typescript const d1 = DateRange.nextDays(7); // a date range of next week since today ``` * @param n Number of days after today. */ static nextDays(n) { const start = new Date(); const end = new Date(); end.setDate(end.getDate() + n); return new DateRange(start, end); } /** * Examples: ```typescript const d1 = DateRange.lastDays(7); // a date range of a week before today ``` * @param n Number of days before today. */ static lastDays(n) { const start = new Date(); start.setDate(start.getDate() - n); const end = new Date(); return new DateRange(start, end); } /** * Examples: ```typescript const d1 = DateRange.nextTwoWeeks(); // a date range of next two weeks since today ``` */ static nextTwoWeeks() { return DateRange.nextDays(14); } /** * Examples: ```typescript const d1 = DateRange.nextMonth(); // a date range of next month since today ``` */ static nextMonth() { const start = new Date(); const end = new Date(); end.setMonth(end.getMonth() + 1); return new DateRange(start, end); } /** * Examples: ```typescript const d1 = DateRange.lastMonth(); // a date range of last month till today ``` */ static lastMonth() { const start = new Date(); const end = new Date(); start.setMonth(start.getMonth() - 1); return new DateRange(start, end); } /** * Examples: ```typescript const d1 = DateRange.create({}); ``` * @param start start date of range you're creating * @param end end date of range you're creating */ static create(start, end) { let startDate = null; let endDate = null; if (DateRange.isValidDate(start)) { startDate = new Date(start); } if (DateRange.isValidDate(end)) { endDate = new Date(end); } return new DateRange(startDate, endDate); } /** * Examples: ```typescript const isValid = DateRange.isValidDate(new Date()); ``` * @param value date you want to verify as date */ static isValidDate(value) { if (!value) { return false; } switch (typeof value) { case 'number': return true; case 'string': return !isNaN(Date.parse(value)); default: if (value instanceof Date) { return !isNaN(value.getTime()); } return false; } } /** * Examples: ```typescript const a = new DateRange(); const isEqual = a.equals(new DateRange()); ``` * @param dateRange another DateRange object */ equals(dateRange) { if (!dateRange) { return false; } return (DateRange.dateEqual(dateRange.start, this.start) && DateRange.dateEqual(dateRange.end, this.end)); } /** * * @param date1 a Date object or NULL * @param date2 a Date object or NULL */ static dateEqual(date1, date2) { if (date1 === null) { return date2 === null; } else if (date2 === null) { return false; } const d1 = date1 instanceof Date ? date1 : new Date(date1); const d2 = date2 instanceof Date ? date2 : new Date(date2); return d1.toLocaleDateString() === d2.toLocaleDateString(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Vpb3dhL2RhdGUtcmFuZ2UtcGlja2VyL3NyYy9saWIvbW9kZWxzL2RhdGUtcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQjs7Ozs7Ozs7T0FRRztJQUNILFlBQ1MsUUFBcUIsSUFBSSxFQUN6QixNQUFtQixJQUFJO1FBRHZCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQW9CO0lBQzdCLENBQUM7SUFFSjs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFTO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBUztRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxF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QUFNLEVBQUUsR0FBRyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIERhdGVSYW5nZSBUeXBlIHJlcHJlc2VudHMgc3RhcnQgZGF0ZSBhbmQgZW5kIGRhdGUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlIHtcclxuICAvKipcclxuICAgKiBFeGFtcGxlczpcclxuIGBgYHR5cGVzY3JpcHRcclxuY29uc3QgZDEgPSBuZXcgRGF0ZVJhbmdlKCk7XHJcbmNvbnN0IGQyID0gbmV3IERhdGVSYW5nZShuZXcgRGF0ZSgpLCBuZXcgRGF0ZSgyMDE4LCA5LCAxMCkpO1xyXG4gYGBgXHJcbiAgICogQHBhcmFtIHN0YXJ0IFtPcHRpb25hbF0gU3RhcnQgRGF0ZS4gRGVmYXVsdDogbnVsbC5cclxuICAgKiBAcGFyYW0gZW5kIFtPcHRpb25hbF0gRW5kIERhdGUuIERlZmF1bHQ6IG51bGxcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdGFydDogRGF0ZSB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIGVuZDogRGF0ZSB8IG51bGwgPSBudWxsXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBFeGFtcGxlczpcclxuIGBgYHR5cGVzY3JpcHRcclxuY29uc3QgZDEgPSBEYXRlUmFuZ2UubmV4dERheXMoNyk7XHJcbi8vIGEgZGF0ZSByYW5nZSBvZiBuZXh0IHdlZWsgc2luY2UgdG9kYXlcclxuIGBgYFxyXG4gICAqIEBwYXJhbSBuIE51bWJlciBvZiBkYXlzIGFmdGVyIHRvZGF5LlxyXG4gICAqL1xyXG4gIHN0YXRpYyBuZXh0RGF5cyhuOiBudW1iZXIpOiBEYXRlUmFuZ2Uge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcclxuICAgIGVuZC5zZXREYXRlKGVuZC5nZXREYXRlKCkgKyBuKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlKHN0YXJ0LCBlbmQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhhbXBsZXM6XHJcbiBgYGB0eXBlc2NyaXB0XHJcbmNvbnN0IGQxID0gRGF0ZVJhbmdlLmxhc3REYXlzKDcpO1xyXG4vLyBhIGRhdGUgcmFuZ2Ugb2YgYSB3ZWVrIGJlZm9yZSB0b2RheVxyXG4gYGBgXHJcbiAgICogQHBhcmFtIG4gTnVtYmVyIG9mIGRheXMgYmVmb3JlIHRvZGF5LlxyXG4gICAqL1xyXG4gIHN0YXRpYyBsYXN0RGF5cyhuOiBudW1iZXIpOiBEYXRlUmFuZ2Uge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgc3RhcnQuc2V0RGF0ZShzdGFydC5nZXREYXRlKCkgLSBuKTtcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGVSYW5nZShzdGFydCwgZW5kKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4YW1wbGVzOlxyXG4gYGBgdHlwZXNjcmlwdFxyXG5jb25zdCBkMSA9IERhdGVSYW5nZS5uZXh0VHdvV2Vla3MoKTtcclxuLy8gYSBkYXRlIHJhbmdlIG9mIG5leHQgdHdvIHdlZWtzIHNpbmNlIHRvZGF5XHJcbiBgYGBcclxuICAgKi9cclxuICBzdGF0aWMgbmV4dFR3b1dlZWtzKCk6IERhdGVSYW5nZSB7XHJcbiAgICByZXR1cm4gRGF0ZVJhbmdlLm5leHREYXlzKDE0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4YW1wbGVzOlxyXG4gYGBgdHlwZXNjcmlwdFxyXG5jb25zdCBkMSA9IERhdGVSYW5nZS5uZXh0TW9udGgoKTtcclxuLy8gYSBkYXRlIHJhbmdlIG9mIG5leHQgbW9udGggc2luY2UgdG9kYXlcclxuIGBgYFxyXG4gICAqL1xyXG4gIHN0YXRpYyBuZXh0TW9udGgoKTogRGF0ZVJhbmdlIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKCk7XHJcbiAgICBlbmQuc2V0TW9udGgoZW5kLmdldE1vbnRoKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlKHN0YXJ0LCBlbmQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhhbXBsZXM6XHJcbiBgYGB0eXBlc2NyaXB0XHJcbmNvbnN0IGQxID0gRGF0ZVJhbmdlLmxhc3RNb250aCgpO1xyXG4vLyBhIGRhdGUgcmFuZ2Ugb2YgbGFzdCBtb250aCB0aWxsIHRvZGF5XHJcbiBgYGBcclxuICAgKi9cclxuICBzdGF0aWMgbGFzdE1vbnRoKCk6IERhdGVSYW5nZSB7XHJcbiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgc3RhcnQuc2V0TW9udGgoc3RhcnQuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGFtcGxlczpcclxuIGBgYHR5cGVzY3JpcHRcclxuY29uc3QgZDEgPSBEYXRlUmFuZ2UuY3JlYXRlKHt9KTtcclxuIGBgYFxyXG4gICAqIEBwYXJhbSBzdGFydCBzdGFydCBkYXRlIG9mIHJhbmdlIHlvdSdyZSBjcmVhdGluZ1xyXG4gICAqIEBwYXJhbSBlbmQgZW5kIGRhdGUgb2YgcmFuZ2UgeW91J3JlIGNyZWF0aW5nXHJcbiAgICovXHJcbiAgc3RhdGljIGNyZWF0ZShzdGFydDogYW55LCBlbmQ6IGFueSk6IERhdGVSYW5nZSB7XHJcbiAgICBsZXQgc3RhcnREYXRlID0gbnVsbDtcclxuICAgIGxldCBlbmREYXRlID0gbnVsbDtcclxuICAgIGlmIChEYXRlUmFuZ2UuaXNWYWxpZERhdGUoc3RhcnQpKSB7XHJcbiAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0KTtcclxuICAgIH1cclxuICAgIGlmIChEYXRlUmFuZ2UuaXNWYWxpZERhdGUoZW5kKSkge1xyXG4gICAgICBlbmREYXRlID0gbmV3IERhdGUoZW5kKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGFtcGxlczpcclxuIGBgYHR5cGVzY3JpcHRcclxuY29uc3QgaXNWYWxpZCA9IERhdGVSYW5nZS5pc1ZhbGlkRGF0ZShuZXcgRGF0ZSgpKTtcclxuIGBgYFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBkYXRlIHlvdSB3YW50IHRvIHZlcmlmeSBhcyBkYXRlXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuICFpc05hTihEYXRlLnBhcnNlKHZhbHVlKSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgcmV0dXJuICFpc05hTih2YWx1ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGFtcGxlczpcclxuIGBgYHR5cGVzY3JpcHRcclxuY29uc3QgYSA9IG5ldyBEYXRlUmFuZ2UoKTtcclxuY29uc3QgaXNFcXVhbCA9IGEuZXF1YWxzKG5ldyBEYXRlUmFuZ2UoKSk7XHJcbiBgYGBcclxuICAgKiBAcGFyYW0gZGF0ZVJhbmdlIGFub3RoZXIgRGF0ZVJhbmdlIG9iamVjdFxyXG4gICAqL1xyXG4gIGVxdWFscyhkYXRlUmFuZ2U6IERhdGVSYW5nZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFkYXRlUmFuZ2UpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgRGF0ZVJhbmdlLmRhdGVFcXVhbChkYXRlUmFuZ2Uuc3RhcnQsIHRoaXMuc3RhcnQpICYmXHJcbiAgICAgIERhdGVSYW5nZS5kYXRlRXF1YWwoZGF0ZVJhbmdlLmVuZCwgdGhpcy5lbmQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0ZTEgYSBEYXRlIG9iamVjdCBvciBOVUxMXHJcbiAgICogQHBhcmFtIGRhdGUyIGEgRGF0ZSBvYmplY3Qgb3IgTlVMTFxyXG4gICAqL1xyXG4gIHN0YXRpYyBkYXRlRXF1YWwoZGF0ZTE6IERhdGUgfCBudWxsLCBkYXRlMjogRGF0ZSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGlmIChkYXRlMSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZGF0ZTIgPT09IG51bGw7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUyID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkMSA9IGRhdGUxIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGUxIDogbmV3IERhdGUoZGF0ZTEpO1xyXG4gICAgY29uc3QgZDIgPSBkYXRlMiBpbnN0YW5jZW9mIERhdGUgPyBkYXRlMiA6IG5ldyBEYXRlKGRhdGUyKTtcclxuICAgIHJldHVybiBkMS50b0xvY2FsZURhdGVTdHJpbmcoKSA9PT0gZDIudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==