ng-time-past-pipe
Version:
Reactive textual representation of the time that has been passed between a given date and now in your Angular App.
41 lines • 4.49 kB
JavaScript
import { Inject, Injectable } from '@angular/core';
import { createTimeDiff, TIME_DIFF_GENERATOR } from './time-diff';
import { parseInputValue, validateTAInputType } from './time-past';
import * as i0 from "@angular/core";
/**
* Public TimePast Service Class
*
* @public
* @api
*/
export class TimePastService {
constructor(timeDiffGenerator) {
this.timeDiffGenerator = timeDiffGenerator;
}
/**
* Transform anything that can be parsed to a Date in the past, to a string that represent the relative
* time that has been passed between now and this point of time.
*
* @param value A value that can be parsed to a Date in the past
* @return The textual representation of the time that has been passed between the given Date
* and the current.
*/
timePast(value) {
if (validateTAInputType(value) === false) {
return undefined;
}
const seconds = parseInputValue(value);
const timeDiff = createTimeDiff(seconds);
return this.timeDiffGenerator(timeDiff);
}
}
TimePastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TimePastService, deps: [{ token: TIME_DIFF_GENERATOR }], target: i0.ɵɵFactoryTarget.Injectable });
TimePastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TimePastService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TimePastService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Inject,
args: [TIME_DIFF_GENERATOR]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1wYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10aW1lLXBhc3QtcGlwZS9zcmMvbGliL3RpbWUtcGFzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sYUFBYSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQVcsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRzVFOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBMEQsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBSSxDQUFDO0lBRW5HOzs7Ozs7O09BT0c7SUFDSCxRQUFRLENBQUMsS0FBYztRQUNyQixJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUN4QyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7NEdBcEJVLGVBQWUsa0JBQ04sbUJBQW1CO2dIQUQ1QixlQUFlLGNBUEYsTUFBTTsyRkFPbkIsZUFBZTtrQkFQM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVFuQixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlVGltZURpZmYsIFRJTUVfRElGRl9HRU5FUkFUT1IsIFRpbWVEaWZmR2VuZXJhdG9yIH0gZnJvbSAnLi90aW1lLWRpZmYnO1xuaW1wb3J0IHsgcGFyc2VJbnB1dFZhbHVlLCBUQUlucHV0LCB2YWxpZGF0ZVRBSW5wdXRUeXBlIH0gZnJvbSAnLi90aW1lLXBhc3QnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuLyoqXG4gKiBQdWJsaWMgVGltZVBhc3QgU2VydmljZSBDbGFzc1xuICpcbiAqIEBwdWJsaWNcbiAqIEBhcGlcbiAqL1xuZXhwb3J0IGNsYXNzIFRpbWVQYXN0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVElNRV9ESUZGX0dFTkVSQVRPUikgcHJpdmF0ZSByZWFkb25seSB0aW1lRGlmZkdlbmVyYXRvcjogVGltZURpZmZHZW5lcmF0b3IpIHsgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYW55dGhpbmcgdGhhdCBjYW4gYmUgcGFyc2VkIHRvIGEgRGF0ZSBpbiB0aGUgcGFzdCwgdG8gYSBzdHJpbmcgdGhhdCByZXByZXNlbnQgdGhlIHJlbGF0aXZlXG4gICAqICB0aW1lIHRoYXQgaGFzIGJlZW4gcGFzc2VkIGJldHdlZW4gbm93IGFuZCB0aGlzIHBvaW50IG9mIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBBIHZhbHVlIHRoYXQgY2FuIGJlIHBhcnNlZCB0byBhIERhdGUgaW4gdGhlIHBhc3RcbiAgICogQHJldHVybiBUaGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdGltZSB0aGF0IGhhcyBiZWVuIHBhc3NlZCBiZXR3ZWVuIHRoZSBnaXZlbiBEYXRlXG4gICAqICBhbmQgdGhlIGN1cnJlbnQuXG4gICAqL1xuICB0aW1lUGFzdCh2YWx1ZTogVEFJbnB1dCk6IHN0cmluZyB7XG4gICAgaWYgKHZhbGlkYXRlVEFJbnB1dFR5cGUodmFsdWUpID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNvbmRzID0gcGFyc2VJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICBjb25zdCB0aW1lRGlmZiA9IGNyZWF0ZVRpbWVEaWZmKHNlY29uZHMpO1xuXG4gICAgcmV0dXJuIHRoaXMudGltZURpZmZHZW5lcmF0b3IodGltZURpZmYpO1xuICB9XG59XG4iXX0=