design-angular-kit
Version:
Un toolkit Angular conforme alle linee guida di design per i servizi web della PA
56 lines • 6.26 kB
JavaScript
import { Pipe } from '@angular/core';
import { TranslatePipe } from '@ngx-translate/core';
import * as i0 from "@angular/core";
/**
* Indicates in a textual way how much time has passed since the indicated date
* @example 2 hours ago
*/
export class ItDateAgoPipe extends TranslatePipe {
/**
* Indicates in a textual way how much time has passed since the indicated date
* @example 2 hours ago
* @param value the Date or date string
*/
transform(value) {
if (!value) {
return '';
}
const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);
if (isNaN(seconds)) {
return '';
}
// less than 30 seconds ago will show as 'Just now'
if (seconds < 29) {
return super.transform('it.date-ago-pipe.just-now');
}
const intervals = new Map([
['year', 31536000],
['month', 2592000],
['week', 604800],
['day', 86400],
['hour', 3600],
['minute', 60],
['second', 1],
]);
for (const interval of intervals) {
const counter = Math.floor(seconds / interval[1]);
if (counter > 0) {
return super.transform(`it.date-ago-pipe.${counter === 1 ? 'singular-' : ''}${interval[0]}-ago`, {
count: counter,
});
}
}
return '';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItDateAgoPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: ItDateAgoPipe, isStandalone: true, name: "itDateAgo", pure: false }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItDateAgoPipe, decorators: [{
type: Pipe,
args: [{
name: 'itDateAgo',
pure: false,
standalone: true,
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3BpcGVzL2RhdGUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUlwRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7SUFDOUM7Ozs7T0FJRztJQUNNLFNBQVMsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqQixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQThCO1lBQ3JELENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUNsQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7WUFDbEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ2hCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNkLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUNkLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNkLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNkLENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQy9GLEtBQUssRUFBRSxPQUFPO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQXpDVSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBTHpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxudHlwZSBEYXRlQWdvUGlwZUludGVydmFsID0gJ3llYXInIHwgJ21vbnRoJyB8ICd3ZWVrJyB8ICdkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZScgfCAnc2Vjb25kJztcblxuLyoqXG4gKiBJbmRpY2F0ZXMgaW4gYSB0ZXh0dWFsIHdheSBob3cgbXVjaCB0aW1lIGhhcyBwYXNzZWQgc2luY2UgdGhlIGluZGljYXRlZCBkYXRlXG4gKiBAZXhhbXBsZSAyIGhvdXJzIGFnb1xuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdpdERhdGVBZ28nLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSXREYXRlQWdvUGlwZSBleHRlbmRzIFRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpbiBhIHRleHR1YWwgd2F5IGhvdyBtdWNoIHRpbWUgaGFzIHBhc3NlZCBzaW5jZSB0aGUgaW5kaWNhdGVkIGRhdGVcbiAgICogQGV4YW1wbGUgMiBob3VycyBhZ29cbiAgICogQHBhcmFtIHZhbHVlIHRoZSBEYXRlIG9yIGRhdGUgc3RyaW5nXG4gICAqL1xuICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcigoK25ldyBEYXRlKCkgLSArbmV3IERhdGUodmFsdWUpKSAvIDEwMDApO1xuICAgIGlmIChpc05hTihzZWNvbmRzKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIGxlc3MgdGhhbiAzMCBzZWNvbmRzIGFnbyB3aWxsIHNob3cgYXMgJ0p1c3Qgbm93J1xuICAgIGlmIChzZWNvbmRzIDwgMjkpIHtcbiAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0oJ2l0LmRhdGUtYWdvLXBpcGUuanVzdC1ub3cnKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcnZhbHMgPSBuZXcgTWFwPERhdGVBZ29QaXBlSW50ZXJ2YWwsIG51bWJlcj4oW1xuICAgICAgWyd5ZWFyJywgMzE1MzYwMDBdLFxuICAgICAgWydtb250aCcsIDI1OTIwMDBdLFxuICAgICAgWyd3ZWVrJywgNjA0ODAwXSxcbiAgICAgIFsnZGF5JywgODY0MDBdLFxuICAgICAgWydob3VyJywgMzYwMF0sXG4gICAgICBbJ21pbnV0ZScsIDYwXSxcbiAgICAgIFsnc2Vjb25kJywgMV0sXG4gICAgXSk7XG5cbiAgICBmb3IgKGNvbnN0IGludGVydmFsIG9mIGludGVydmFscykge1xuICAgICAgY29uc3QgY291bnRlciA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIGludGVydmFsWzFdKTtcbiAgICAgIGlmIChjb3VudGVyID4gMCkge1xuICAgICAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKGBpdC5kYXRlLWFnby1waXBlLiR7Y291bnRlciA9PT0gMSA/ICdzaW5ndWxhci0nIDogJyd9JHtpbnRlcnZhbFswXX0tYWdvYCwge1xuICAgICAgICAgIGNvdW50OiBjb3VudGVyLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==