UNPKG

ngx-bootstrap

Version:
79 lines 2.65 kB
import { createDuration } from './create'; let round = Math.round; const thresholds = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 // months to year }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize function substituteTimeAgo(str, num, withoutSuffix, isFuture, locale) { return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture); } export function relativeTime(posNegDuration, withoutSuffix, locale) { const duration = createDuration(posNegDuration).abs(); const seconds = round(duration.as('s')); const minutes = round(duration.as('m')); const hours = round(duration.as('h')); const days = round(duration.as('d')); const months = round(duration.as('M')); const years = round(duration.as('y')); const a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days] || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years]; const b = [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale]; // a[2] = withoutSuffix; // a[3] = +posNegDuration > 0; // a[4] = locale; return substituteTimeAgo.apply(null, b); } // This function allows you to set the rounding function for relative time strings export function getSetRelativeTimeRounding(roundingFunction) { if (roundingFunction === undefined) { return round; } if (typeof (roundingFunction) === 'function') { round = roundingFunction; return true; } return false; } // This function allows you to set a threshold for relative time strings export function getSetRelativeTimeThreshold(threshold, limit) { if (thresholds[threshold] === undefined) { return false; } if (limit === undefined) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === 's') { thresholds.ss = limit - 1; } return true; } // export function humanize(withSuffix) { // if (!this.isValid()) { // return this.localeData().invalidDate(); // } // // const locale = this.localeData(); // let output = relativeTime(this, !withSuffix, locale); // // if (withSuffix) { // output = locale.pastFuture(+this, output); // } // // return locale.postformat(output); // } //# sourceMappingURL=humanize.js.map