UNPKG

@cisstech/nge

Version:

NG Essentials is a collection of libraries for Angular developers.

95 lines 10.7 kB
export function epoch() { return new Date('01/01/1970'); } export function addDays(date, days) { date = new Date(date.valueOf()); date.setDate(date.getDate() + days); return date; } /** Gets current value of unix timestamp */ export function timestamp() { return new Date().getTime() / 1000; } /** * Gets unix timestamp value of `date` * @param date the date. */ export function toTimestamp(date) { return date.getTime() / 1000; } /** * Converts an unix timestamp to a Date object * @param time an unix timestamp */ export function dateFromTimestamp(time) { return new Date(time * 1000); } /** * Converts an unix timestamp to a date in the format 'day month hours mins' * @param time an unix timestamp. * @param locale target language locale tag. * @returns string representation of the date. */ export function fullDate(time, locale) { const format = { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', }; return convertDate(time, format, locale); } /** * Converts an unix timestamp to a date in the format 'day month' * @param time an unix timestamp. * @param locale target language locale tag. * @returns string representation of the date. */ export function shortDate(time, locale) { return convertDate(time, { month: 'short', day: 'numeric' }, locale); } /** * Converts an unix timestamp to a date in the format 'hours mins' * @param time an unix timestamp. * @returns string representation of the date. */ export function hours(time) { const date = dateFromTimestamp(time); const minutes = date.getMinutes(); const minutesFormat = minutes >= 10 ? minutes : `0${minutes}`; return `${date.getHours()}:${minutesFormat}`; } /** * Gets a value indicating whether the timestamp is today. * @param time an unix timestamp. */ export function isToday(time) { return new Date().toLocaleDateString() === dateFromTimestamp(time).toLocaleDateString(); } /** * Gets a value indicating whether the given dates representes the same year, month and day. * @param d1 the first date. * @param d2 the second date. */ export function compareDays(d1, d2) { return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate(); } export function convertDate(time, format, locale) { const date = dateFromTimestamp(time); return date.toLocaleDateString(locale, format); } export function weeksDiff(d1, d2) { let diff = (d2.getTime() - d1.getTime()) / 1000; diff /= 60 * 60 * 24 * 7; return Math.abs(Math.round(diff)); } export function dateRangeOverlaps(a_start, a_end, b_start, b_end) { if (a_start < b_start && b_start < a_end) return true; // b starts in a if (a_start < b_end && b_end < a_end) return true; // b ends in a if (b_start < a_start && a_end < b_end) return true; // a in b return false; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2UvdXRpbHMvc3JjL2RhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLO0lBQ25CLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBVSxFQUFFLElBQVk7SUFDOUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ25DLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELDJDQUEyQztBQUMzQyxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBQ3BDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVU7SUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBQzlCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQTtBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVksRUFBRSxNQUFlO0lBQ3BELE1BQU0sTUFBTSxHQUErQjtRQUN6QyxLQUFLLEVBQUUsT0FBTztRQUNkLEdBQUcsRUFBRSxTQUFTO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFBO0lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVksRUFBRSxNQUFlO0lBQ3JELE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQ3RFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxJQUFZO0lBQ2hDLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLGFBQWEsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUE7SUFDN0QsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQTtBQUM5QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFZO0lBQ2xDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUE7QUFDekYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEVBQVEsRUFBRSxFQUFRO0lBQzVDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDbEgsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQWtDLEVBQUUsTUFBZTtJQUMzRixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNwQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsRUFBUSxFQUFFLEVBQVE7SUFDMUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBQy9DLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWEsRUFBRSxLQUFXLEVBQUUsT0FBYSxFQUFFLEtBQVc7SUFDdEYsSUFBSSxPQUFPLEdBQUcsT0FBTyxJQUFJLE9BQU8sR0FBRyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUEsQ0FBQyxnQkFBZ0I7SUFDdEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxJQUFJLEtBQUssR0FBRyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUEsQ0FBQyxjQUFjO0lBQ2hFLElBQUksT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLEdBQUcsS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFBLENBQUMsU0FBUztJQUM3RCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXBvY2goKTogRGF0ZSB7XG4gIHJldHVybiBuZXcgRGF0ZSgnMDEvMDEvMTk3MCcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREYXlzKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcikge1xuICBkYXRlID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpXG4gIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIGRheXMpXG4gIHJldHVybiBkYXRlXG59XG5cbi8qKiBHZXRzIGN1cnJlbnQgdmFsdWUgb2YgdW5peCB0aW1lc3RhbXAgKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXAoKTogbnVtYmVyIHtcbiAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMFxufVxuXG4vKipcbiAqIEdldHMgdW5peCB0aW1lc3RhbXAgdmFsdWUgb2YgYGRhdGVgXG4gKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVGltZXN0YW1wKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgLyAxMDAwXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gdW5peCB0aW1lc3RhbXAgdG8gYSBEYXRlIG9iamVjdFxuICogQHBhcmFtIHRpbWUgYW4gdW5peCB0aW1lc3RhbXBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGcm9tVGltZXN0YW1wKHRpbWU6IG51bWJlcik6IERhdGUge1xuICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gdW5peCB0aW1lc3RhbXAgdG8gYSBkYXRlIGluIHRoZSBmb3JtYXQgJ2RheSBtb250aCBob3VycyBtaW5zJ1xuICogQHBhcmFtIHRpbWUgYW4gdW5peCB0aW1lc3RhbXAuXG4gKiBAcGFyYW0gbG9jYWxlIHRhcmdldCBsYW5ndWFnZSBsb2NhbGUgdGFnLlxuICogQHJldHVybnMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnVsbERhdGUodGltZTogbnVtYmVyLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmb3JtYXQ6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgIGRheTogJ251bWVyaWMnLFxuICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgfVxuICByZXR1cm4gY29udmVydERhdGUodGltZSwgZm9ybWF0LCBsb2NhbGUpXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gdW5peCB0aW1lc3RhbXAgdG8gYSBkYXRlIGluIHRoZSBmb3JtYXQgJ2RheSBtb250aCdcbiAqIEBwYXJhbSB0aW1lIGFuIHVuaXggdGltZXN0YW1wLlxuICogQHBhcmFtIGxvY2FsZSB0YXJnZXQgbGFuZ3VhZ2UgbG9jYWxlIHRhZy5cbiAqIEByZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3J0RGF0ZSh0aW1lOiBudW1iZXIsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjb252ZXJ0RGF0ZSh0aW1lLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJyB9LCBsb2NhbGUpXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gdW5peCB0aW1lc3RhbXAgdG8gYSBkYXRlIGluIHRoZSBmb3JtYXQgJ2hvdXJzIG1pbnMnXG4gKiBAcGFyYW0gdGltZSBhbiB1bml4IHRpbWVzdGFtcC5cbiAqIEByZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvdXJzKHRpbWU6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGUgPSBkYXRlRnJvbVRpbWVzdGFtcCh0aW1lKVxuICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKClcbiAgY29uc3QgbWludXRlc0Zvcm1hdCA9IG1pbnV0ZXMgPj0gMTAgPyBtaW51dGVzIDogYDAke21pbnV0ZXN9YFxuICByZXR1cm4gYCR7ZGF0ZS5nZXRIb3VycygpfToke21pbnV0ZXNGb3JtYXR9YFxufVxuXG4vKipcbiAqIEdldHMgYSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRpbWVzdGFtcCBpcyB0b2RheS5cbiAqIEBwYXJhbSB0aW1lIGFuIHVuaXggdGltZXN0YW1wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUb2RheSh0aW1lOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCkgPT09IGRhdGVGcm9tVGltZXN0YW1wKHRpbWUpLnRvTG9jYWxlRGF0ZVN0cmluZygpXG59XG5cbi8qKlxuICogR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZ2l2ZW4gZGF0ZXMgcmVwcmVzZW50ZXMgdGhlIHNhbWUgeWVhciwgbW9udGggYW5kIGRheS5cbiAqIEBwYXJhbSBkMSB0aGUgZmlyc3QgZGF0ZS5cbiAqIEBwYXJhbSBkMiB0aGUgc2Vjb25kIGRhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlRGF5cyhkMTogRGF0ZSwgZDI6IERhdGUpIHtcbiAgcmV0dXJuIGQxLmdldEZ1bGxZZWFyKCkgPT09IGQyLmdldEZ1bGxZZWFyKCkgJiYgZDEuZ2V0TW9udGgoKSA9PT0gZDIuZ2V0TW9udGgoKSAmJiBkMS5nZXREYXRlKCkgPT09IGQyLmdldERhdGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGUodGltZTogbnVtYmVyLCBmb3JtYXQ6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRlID0gZGF0ZUZyb21UaW1lc3RhbXAodGltZSlcbiAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgZm9ybWF0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NEaWZmKGQxOiBEYXRlLCBkMjogRGF0ZSkge1xuICBsZXQgZGlmZiA9IChkMi5nZXRUaW1lKCkgLSBkMS5nZXRUaW1lKCkpIC8gMTAwMFxuICBkaWZmIC89IDYwICogNjAgKiAyNCAqIDdcbiAgcmV0dXJuIE1hdGguYWJzKE1hdGgucm91bmQoZGlmZikpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlUmFuZ2VPdmVybGFwcyhhX3N0YXJ0OiBEYXRlLCBhX2VuZDogRGF0ZSwgYl9zdGFydDogRGF0ZSwgYl9lbmQ6IERhdGUpOiBib29sZWFuIHtcbiAgaWYgKGFfc3RhcnQgPCBiX3N0YXJ0ICYmIGJfc3RhcnQgPCBhX2VuZCkgcmV0dXJuIHRydWUgLy8gYiBzdGFydHMgaW4gYVxuICBpZiAoYV9zdGFydCA8IGJfZW5kICYmIGJfZW5kIDwgYV9lbmQpIHJldHVybiB0cnVlIC8vIGIgZW5kcyBpbiBhXG4gIGlmIChiX3N0YXJ0IDwgYV9zdGFydCAmJiBhX2VuZCA8IGJfZW5kKSByZXR1cm4gdHJ1ZSAvLyBhIGluIGJcbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=