cf-common-lib
Version:
Object Validators and Utilities
178 lines • 12.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Pipe, NgZone, ChangeDetectorRef } from '@angular/core';
//
var TimeagoPipe = /** @class */ (function () {
function TimeagoPipe(changeDetectorRef, ngZone) {
this.changeDetectorRef = changeDetectorRef;
this.ngZone = ngZone;
}
/**
* @return {?}
*/
TimeagoPipe.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.removeTimer();
};
/**
* @return {?}
*/
TimeagoPipe.prototype.removeTimer = /**
* @return {?}
*/
function () {
if (typeof timer !== 'undefined') {
window.clearTimeout(timer);
timer = null;
}
};
/**
* @param {?} seconds
* @return {?}
*/
TimeagoPipe.prototype.getSecondsUntilUpdate = /**
* @param {?} seconds
* @return {?}
*/
function (seconds) {
/** @type {?} */
var min = 60;
/** @type {?} */
var hr = min * 60;
/** @type {?} */
var day = hr * 24;
if (seconds < min) {
// less than 1 min, update every 2 secs
return 2;
}
else if (seconds < hr) {
// less than an hour, update every 30 secs
return 30;
}
else if (seconds < day) {
// less then a day, update every 5 mins
return 300;
}
else {
// update every hour
return 3600;
}
};
/**
* @param {?} value
* @param {?=} args
* @return {?}
*/
TimeagoPipe.prototype.transform = /**
* @param {?} value
* @param {?=} args
* @return {?}
*/
function (value, args) {
var _this = this;
this.removeTimer();
/** @type {?} */
var d = new Date(value);
/** @type {?} */
var timer = "";
/** @type {?} */
var now = new Date();
/** @type {?} */
var seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));
/** @type {?} */
var timeToUpdate = (Number.isNaN(seconds)) ? 1000 : this.getSecondsUntilUpdate(seconds) * 1000;
timer = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
function () {
if (typeof window !== 'undefined') {
return window.setTimeout((/**
* @return {?}
*/
function () {
_this.ngZone.run((/**
* @return {?}
*/
function () { return _this.changeDetectorRef.markForCheck(); }));
}), timeToUpdate);
}
return null;
}));
/** @type {?} */
var minutes = Math.round(Math.abs(seconds / 60));
/** @type {?} */
var hours = Math.round(Math.abs(minutes / 60));
/** @type {?} */
var days = Math.round(Math.abs(hours / 24));
/** @type {?} */
var months = Math.round(Math.abs(days / 30.416));
/** @type {?} */
var years = Math.round(Math.abs(days / 365));
if (Number.isNaN(seconds)) {
return '';
}
else if (seconds <= 45) {
return 'a few seconds ago';
}
else if (seconds <= 90) {
return 'a minute ago';
}
else if (minutes <= 45) {
return minutes + ' minutes ago';
}
else if (minutes <= 90) {
return 'an hour ago';
}
else if (hours <= 22) {
return hours + ' hours ago';
}
else if (hours <= 36) {
return 'a day ago';
}
else if (days <= 25) {
return days + ' days ago';
}
else if (days <= 45) {
return 'a month ago';
}
else if (days <= 345) {
return months + ' months ago';
}
else if (days <= 545) {
return 'a year ago';
}
else {
// (days > 545)
return years + ' years ago';
}
};
TimeagoPipe.decorators = [
{ type: Pipe, args: [{
name: 'timeago'
},] }
];
/** @nocollapse */
TimeagoPipe.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: NgZone }
]; };
return TimeagoPipe;
}());
export { TimeagoPipe };
if (false) {
/**
* @type {?}
* @private
*/
TimeagoPipe.prototype.changeDetectorRef;
/**
* @type {?}
* @private
*/
TimeagoPipe.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWFnby5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY2YtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy90aW1lYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRyxNQUFNLGVBQWUsQ0FBQzs7QUFJaEY7SUFNRyxxQkFBb0IsaUJBQXFDLEVBQVcsTUFBZTtRQUEvRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUFLLENBQUM7Ozs7SUFFeEYsaUNBQVc7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFHRCxpQ0FBVzs7O0lBQVg7UUFDSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM5QixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDaEI7SUFDTCxDQUFDOzs7OztJQUVBLDJDQUFxQjs7OztJQUFyQixVQUFzQixPQUFPOztZQUN0QixHQUFHLEdBQUcsRUFBRTs7WUFDUixFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUU7O1lBQ2IsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQ2pCLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNmLHVDQUF1QztZQUN2QyxPQUFPLENBQUMsQ0FBQztTQUNaO2FBQ0ksSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1lBQ25CLDBDQUEwQztZQUMxQyxPQUFPLEVBQUUsQ0FBQztTQUNiO2FBQ0ksSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLHVDQUF1QztZQUN2QyxPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQ0k7WUFDRCxvQkFBb0I7WUFDcEIsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7Ozs7OztJQUVGLCtC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RyxFQUFFO1lBQ2xCLE9BQU8sWUFBWSxDQUFDO1NBQ3ZCO2FBQ0k7WUFDRCxlQUFlO1lBQ2YsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDO1NBQy9CO0lBQ1AsQ0FBQzs7Z0JBbkdGLElBQUksU0FBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEI7Ozs7Z0JBTnFDLGlCQUFpQjtnQkFBekIsTUFBTTs7SUF5R3BDLGtCQUFDO0NBQUEsQUFyR0QsSUFxR0M7U0FsR1ksV0FBVzs7Ozs7O0lBR1Qsd0NBQTZDOzs7OztJQUFHLDZCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIE5nWm9uZSwgQ2hhbmdlRGV0ZWN0b3JSZWYgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmRlY2xhcmUgbGV0IHRpbWVyIDogYW55IDtcbi8vIFxuQFBpcGUoe1xuICBuYW1lOiAndGltZWFnbydcbn0pXG5leHBvcnQgY2xhc3MgVGltZWFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmIDogQ2hhbmdlRGV0ZWN0b3JSZWYgLCBwcml2YXRlIG5nWm9uZSA6IE5nWm9uZSkgeyAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVGltZXIoKTtcbiAgICB9IFxuXG5cbiAgICByZW1vdmVUaW1lcigpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aW1lciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgdGltZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgIGdldFNlY29uZHNVbnRpbFVwZGF0ZShzZWNvbmRzKSB7XG4gICAgICAgIGxldCBtaW4gPSA2MDtcbiAgICAgICAgbGV0IGhyID0gbWluICogNjA7XG4gICAgICAgIGxldCBkYXkgPSBociAqIDI0O1xuICAgICAgICBpZiAoc2Vjb25kcyA8IG1pbikge1xuICAgICAgICAgICAgLy8gbGVzcyB0aGFuIDEgbWluLCB1cGRhdGUgZXZlcnkgMiBzZWNzXG4gICAgICAgICAgICByZXR1cm4gMjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzZWNvbmRzIDwgaHIpIHtcbiAgICAgICAgICAgIC8vIGxlc3MgdGhhbiBhbiBob3VyLCB1cGRhdGUgZXZlcnkgMzAgc2Vjc1xuICAgICAgICAgICAgcmV0dXJuIDMwO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNlY29uZHMgPCBkYXkpIHtcbiAgICAgICAgICAgIC8vIGxlc3MgdGhlbiBhIGRheSwgdXBkYXRlIGV2ZXJ5IDUgbWluc1xuICAgICAgICAgICAgcmV0dXJuIDMwMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBldmVyeSBob3VyXG4gICAgICAgICAgICByZXR1cm4gMzYwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICBcdHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogYW55KTogYW55IHtcbiAgICBcdHRoaXMucmVtb3ZlVGltZXIoKTtcbiAgICAgICAgbGV0ICBkID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICBsZXQgIHRpbWVyIDphbnk9IFwiXCI7XG4gICAgICAgIGxldCAgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgbGV0ICBzZWNvbmRzID0gTWF0aC5yb3VuZChNYXRoLmFicygobm93LmdldFRpbWUoKSAtIGQuZ2V0VGltZSgpKSAvIDEwMDApKTtcbiAgICAgICAgbGV0IHRpbWVUb1VwZGF0ZSA9IChOdW1iZXIuaXNOYU4oc2Vjb25kcykpID8gMTAwMCA6IHRoaXMuZ2V0U2Vjb25kc1VudGlsVXBkYXRlKHNlY29uZHMpICogMTAwMDtcbiAgICAgICAgdGltZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgICAgICAgICAgICAgfSwgdGltZVRvVXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IG1pbnV0ZXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHNlY29uZHMgLyA2MCkpO1xuICAgICAgICBsZXQgIGhvdXJzID0gTWF0aC5yb3VuZChNYXRoLmFicyhtaW51dGVzIC8gNjApKTtcbiAgICAgICAgbGV0ICBkYXlzID0gTWF0aC5yb3VuZChNYXRoLmFicyhob3VycyAvIDI0KSk7XG4gICAgICAgIGxldCAgbW9udGhzID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXlzIC8gMzAuNDE2KSk7XG4gICAgICAgIGxldCAgeWVhcnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMgLyAzNjUpKTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihzZWNvbmRzKSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNlY29uZHMgPD0gNDUpIHtcbiAgICAgICAgICAgIHJldHVybiAnYSBmZXcgc2Vjb25kcyBhZ28nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNlY29uZHMgPD0gOTApIHtcbiAgICAgICAgICAgIHJldHVybiAnYSBtaW51dGUgYWdvJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICAgICAgICByZXR1cm4gbWludXRlcyArICcgbWludXRlcyBhZ28nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG1pbnV0ZXMgPD0gOTApIHtcbiAgICAgICAgICAgIHJldHVybiAnYW4gaG91ciBhZ28nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGhvdXJzIDw9IDIyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91cnMgKyAnIGhvdXJzIGFnbyc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaG91cnMgPD0gMzYpIHtcbiAgICAgICAgICAgIHJldHVybiAnYSBkYXkgYWdvJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkYXlzIDw9IDI1KSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5cyArICcgZGF5cyBhZ28nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRheXMgPD0gNDUpIHtcbiAgICAgICAgICAgIHJldHVybiAnYSBtb250aCBhZ28nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRheXMgPD0gMzQ1KSB7XG4gICAgICAgICAgICByZXR1cm4gbW9udGhzICsgJyBtb250aHMgYWdvJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkYXlzIDw9IDU0NSkge1xuICAgICAgICAgICAgcmV0dXJuICdhIHllYXIgYWdvJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIChkYXlzID4gNTQ1KVxuICAgICAgICAgICAgcmV0dXJuIHllYXJzICsgJyB5ZWFycyBhZ28nO1xuICAgICAgICB9XG4gIH1cblxufVxuIl19