ngx-timeago
Version:
Live updating timestamps in Angular 6+.
31 lines • 4 kB
JavaScript
import { Injectable } from '@angular/core';
import { of, empty, timer } from 'rxjs';
import { expand, skip } from 'rxjs/operators';
import { MINUTE, HOUR, DAY } from './util';
import * as i0 from "@angular/core";
export class TimeagoClock {
}
class TimeagoDefaultClock extends TimeagoClock {
tick(then) {
return of(0)
.pipe(expand(() => {
const now = Date.now();
const seconds = Math.round(Math.abs(now - then) / 1000);
const period = seconds < MINUTE
? 1000
: seconds < HOUR
? 1000 * MINUTE
: seconds < DAY
? 1000 * HOUR
: 0;
return period ? timer(period) : empty();
}), skip(1));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TimeagoDefaultClock, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TimeagoDefaultClock }); }
}
export { TimeagoDefaultClock };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TimeagoDefaultClock, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWFnby5jbG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zcmMvdGltZWFnby5jbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFFM0MsTUFBTSxPQUFnQixZQUFZO0NBRWpDO0FBRUQsTUFDYSxtQkFBb0IsU0FBUSxZQUFZO0lBQ25ELElBQUksQ0FBQyxJQUFZO1FBQ2YsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1QsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUV4RCxNQUFNLE1BQU0sR0FDVixPQUFPLEdBQUcsTUFBTTtnQkFDZCxDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUk7b0JBQ2QsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNO29CQUNmLENBQUMsQ0FBQyxPQUFPLEdBQUcsR0FBRzt3QkFDYixDQUFDLENBQUMsSUFBSSxHQUFHLElBQUk7d0JBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVaLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ04sQ0FBQzs4R0FyQlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGVtcHR5LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZXhwYW5kLCBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTUlOVVRFLCBIT1VSLCBEQVkgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGltZWFnb0Nsb2NrIHtcbiAgYWJzdHJhY3QgdGljayh0aGVuOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaW1lYWdvRGVmYXVsdENsb2NrIGV4dGVuZHMgVGltZWFnb0Nsb2NrIHtcbiAgdGljayh0aGVuOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBvZigwKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGV4cGFuZCgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5yb3VuZChNYXRoLmFicyhub3cgLSB0aGVuKSAvIDEwMDApO1xuXG4gICAgICAgICAgY29uc3QgcGVyaW9kID1cbiAgICAgICAgICAgIHNlY29uZHMgPCBNSU5VVEVcbiAgICAgICAgICAgICAgPyAxMDAwXG4gICAgICAgICAgICAgIDogc2Vjb25kcyA8IEhPVVJcbiAgICAgICAgICAgICAgICA/IDEwMDAgKiBNSU5VVEVcbiAgICAgICAgICAgICAgICA6IHNlY29uZHMgPCBEQVlcbiAgICAgICAgICAgICAgICAgID8gMTAwMCAqIEhPVVJcbiAgICAgICAgICAgICAgICAgIDogMDtcblxuICAgICAgICAgIHJldHVybiBwZXJpb2QgPyB0aW1lcihwZXJpb2QpIDogZW1wdHkoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHNraXAoMSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==