UNPKG

cf-common-lib

Version:

Object Validators and Utilities

178 lines 12.9 kB
/** * @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