@jaspero/ng-helpers
Version:
[](https://github.com/semantic-release/semantic-release) [](https://circleci.
45 lines • 5.85 kB
JavaScript
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=