UNPKG

@jaspero/ng-helpers

Version:

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) [![CircleCI](https://circleci.com/gh/Jaspero/ng-helpers.svg?style=svg)](https://circleci.

45 lines 5.85 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export var TimePassedType; (function (TimePassedType) { TimePassedType[TimePassedType["Millisecond"] = 0] = "Millisecond"; TimePassedType[TimePassedType["Second"] = 1] = "Second"; TimePassedType[TimePassedType["Minute"] = 2] = "Minute"; TimePassedType[TimePassedType["Hour"] = 3] = "Hour"; TimePassedType[TimePassedType["Day"] = 4] = "Day"; TimePassedType[TimePassedType["Month"] = 5] = "Month"; TimePassedType[TimePassedType["Year"] = 6] = "Year"; })(TimePassedType || (TimePassedType = {})); export class TimePassedPipe { static timeDiff(dateOne, dateTwo = new Date(), type = TimePassedType.Day) { const oneDay = 24 * 60 * 60 * 1000; const minute = 60 * 1000; const hour = 60 * minute; const day = hour * 24; const durationMap = { [TimePassedType.Millisecond]: 1, [TimePassedType.Second]: 1000, [TimePassedType.Minute]: minute, [TimePassedType.Hour]: hour, [TimePassedType.Day]: day, [TimePassedType.Month]: day * 30, [TimePassedType.Year]: day * 365 }; return Math.round(Math.abs((dateOne.getTime() - dateTwo.getTime()) / durationMap[type])); } transform(dateOne, dateTwo, type) { if (!dateTwo) { dateTwo = new Date(); } return TimePassedPipe.timeDiff(dateOne, dateTwo, type !== undefined ? type : TimePassedType.Minute); } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimePassedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); /** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimePassedPipe, name: "jpTimePassed" }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimePassedPipe, decorators: [{ type: Pipe, args: [{ name: 'jpTimePassed' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1wYXNzZWQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWhlbHBlcnMvc3JjL3BpcGVzL3RpbWUtcGFzc2VkL3RpbWUtcGFzc2VkLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BQU0sQ0FBTixJQUFZLGNBUVg7QUFSRCxXQUFZLGNBQWM7SUFDeEIsaUVBQVcsQ0FBQTtJQUNYLHVEQUFNLENBQUE7SUFDTix1REFBTSxDQUFBO0lBQ04sbURBQUksQ0FBQTtJQUNKLGlEQUFHLENBQUE7SUFDSCxxREFBSyxDQUFBO0lBQ0wsbURBQUksQ0FBQTtBQUNOLENBQUMsRUFSVyxjQUFjLEtBQWQsY0FBYyxRQVF6QjtBQUtELE1BQU0sT0FBTyxjQUFjO0lBRXpCLE1BQU0sQ0FBQyxRQUFRLENBQ2IsT0FBYSxFQUNiLFVBQWdCLElBQUksSUFBSSxFQUFFLEVBQzFCLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRztRQUV6QixNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFbkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEIsTUFBTSxXQUFXLEdBQUc7WUFDbEIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMvQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJO1lBQzdCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07WUFDL0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSTtZQUMzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHO1lBQ3pCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHO1NBQ2pDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBYSxFQUFFLE9BQWMsRUFBRSxJQUFxQjtRQUU1RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUM1QixPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDbEQsQ0FBQztJQUNKLENBQUM7MkhBdkNVLGNBQWM7eUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFIMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBlbnVtIFRpbWVQYXNzZWRUeXBlIHtcbiAgTWlsbGlzZWNvbmQsXG4gIFNlY29uZCxcbiAgTWludXRlLFxuICBIb3VyLFxuICBEYXksXG4gIE1vbnRoLFxuICBZZWFyXG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2pwVGltZVBhc3NlZCdcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBhc3NlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBzdGF0aWMgdGltZURpZmYoXG4gICAgZGF0ZU9uZTogRGF0ZSxcbiAgICBkYXRlVHdvOiBEYXRlID0gbmV3IERhdGUoKSxcbiAgICB0eXBlID0gVGltZVBhc3NlZFR5cGUuRGF5XG4gICkge1xuICAgIGNvbnN0IG9uZURheSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG5cbiAgICBjb25zdCBtaW51dGUgPSA2MCAqIDEwMDA7XG4gICAgY29uc3QgaG91ciA9IDYwICogbWludXRlO1xuICAgIGNvbnN0IGRheSA9IGhvdXIgKiAyNDtcblxuICAgIGNvbnN0IGR1cmF0aW9uTWFwID0ge1xuICAgICAgW1RpbWVQYXNzZWRUeXBlLk1pbGxpc2Vjb25kXTogMSxcbiAgICAgIFtUaW1lUGFzc2VkVHlwZS5TZWNvbmRdOiAxMDAwLFxuICAgICAgW1RpbWVQYXNzZWRUeXBlLk1pbnV0ZV06IG1pbnV0ZSxcbiAgICAgIFtUaW1lUGFzc2VkVHlwZS5Ib3VyXTogaG91cixcbiAgICAgIFtUaW1lUGFzc2VkVHlwZS5EYXldOiBkYXksXG4gICAgICBbVGltZVBhc3NlZFR5cGUuTW9udGhdOiBkYXkgKiAzMCxcbiAgICAgIFtUaW1lUGFzc2VkVHlwZS5ZZWFyXTogZGF5ICogMzY1XG4gICAgfTtcblxuICAgIHJldHVybiBNYXRoLnJvdW5kKFxuICAgICAgTWF0aC5hYnMoKGRhdGVPbmUuZ2V0VGltZSgpIC0gZGF0ZVR3by5nZXRUaW1lKCkpIC8gZHVyYXRpb25NYXBbdHlwZV0pXG4gICAgKTtcbiAgfVxuXG4gIHRyYW5zZm9ybShkYXRlT25lOiBEYXRlLCBkYXRlVHdvPzogRGF0ZSwgdHlwZT86IFRpbWVQYXNzZWRUeXBlKTogYW55IHtcblxuICAgIGlmICghZGF0ZVR3bykge1xuICAgICAgZGF0ZVR3byA9IG5ldyBEYXRlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFRpbWVQYXNzZWRQaXBlLnRpbWVEaWZmKFxuICAgICAgZGF0ZU9uZSxcbiAgICAgIGRhdGVUd28sXG4gICAgICB0eXBlICE9PSB1bmRlZmluZWQgPyB0eXBlIDogVGltZVBhc3NlZFR5cGUuTWludXRlXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=